前端架构

【前端面试】前端面试题300道~~熬夜吐血整理

蹲街弑〆低调 提交于 2019-12-08 01:48:06
人生也有涯 而知也无涯 以有涯随无涯 殆已! –庄子 部分内容转载自网络,侵立删!如有错误,请指正! 1、手写jsonp的实现 参考自: http://www.qdfuns.com/notes/16738/1b6ad6125747d28592a53a960b44c6f4.html 先说说JSONP是怎么产生的: 其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来有些困难,着用自己的方式来阐释一下这个问题,看看是否有帮助。 1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准。 2、不过我们又发现,Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有”src”这个属性的标签都拥有跨域的能力,比如script、img、iframe)。 3、于是可以判断,当前阶段如果想通过纯web端(ActiveX控件、服务端代理、属于未来的HTML5之Websocket等方式不算)跨域访问数据就只有一种可能,那就是在远程服务器上设法把数据装进js格式的文件里,供客户端调用和进一步处理。 4、恰巧我们已经知道有一种叫做JSON的纯字符数据格式可以简洁的描述复杂数据,更妙的是JSON还被js原生支持

浅谈Hybrid技术的设计与实现

◇◆丶佛笑我妖孽 提交于 2019-12-07 12:27:37
随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发效率的要求,这个时候使用IOS&Andriod开发一个APP似乎成本有点过高了,而H5的低成本、高效率、跨平台等特性马上被利用起来形成了一种新的开发模式:Hybrid APP。 作为一种混合开发的模式,Hybrid APP底层依赖于Native提供的容器(UIWebview),上层使用Html&Css&JS做业务开发,底层透明化、上层多多样化,这种场景非常有利于前端介入,非常适合业务快速迭代,于是Hybrid火啦。 本来我觉得这种开发模式既然大家都知道了,那么Hybrid就没有什么探讨的价值了,但令我诧异的是依旧有很多人对Hybrid这种模式感到陌生,这种情况在二线城市很常见,所以我这里尝试从另一个方面向各位介绍Hybrid,期望对各位正确的技术选型有所帮助。 Hybrid发家史 最初携程的应用全部是Native的,H5站点只占其流量很小的一部分,当时Native有200人红红火火,而H5开仅有5人左右在打酱油,后面无线团队来了一个执行力十分强的服务器端出身的leader,他为了了解前端开发,居然亲手使用jQuery Mobile开发了第一版程序,虽然很快方案便被推翻,但是H5团队开始发力,在短时间内已经赶上了Native的业务进度: 突然有一天andriod同事跑过来告诉我们andriod中有一个方法最大树限制

[转]Serverless实践

最后都变了- 提交于 2019-12-06 20:27:29
转载的,原文: https://www.cnblogs.com/middleware/p/9470533.html -------------------------------------------------------------------------------------------------------- Serverless是什么 Serverless中文译为“无服务器”,最早可以追溯到2012年Ken Fromm发表的《Why The Future Of Software And Apps Is Serverless》,他描述了一种场景,从用户自己维护的物理机,到IaaS,再到PaaS,计算模式的转变并不会停止,在云计算基础设施成熟的情况下应用程序可以不需要考虑服务器的存在,无服务器计算让开发者可以在不考虑服务器的情况下构建并运行应用程序和服务。 再到2016年,Mike Roberts在Martin Fowler的博客《Serverless Architectures》中,将Serverless架构分为Backend as a Service(BaaS)和Functions as a Service(FaaS)。 ●BaaS也就是后端即服务,即应用架构由大量三方云服务和API来组织,使应用中关于服务器的逻辑和状态都由服务提供方来管理。比如典型的单页应用

前端进阶之路

蓝咒 提交于 2019-12-06 12:07:31
前言 总括: 包含这三个月来碰到的一些觉得比较好的面试题,三个月没怎么写博客着实有些手痒,哈哈哈。 原文地址: 我的前端进阶之路 博主博客地址: Damonare的个人博客 烈火试真金,逆境试强者 正文 React和Vue对比 相同点: 数据驱动视图,提供响应式的视图组件 都有Virtual DOM,组件化开发,通过props参数进行父子组件数据的传递,都实现webComponents规范 数据流动单向 都支持服务端渲染 都有支持native的方案,React的 React native ,Vue的 weex 不同点: 社区:React社区还是要比vue大很多; 开发模式:React在view层侵入性还是要比Vue大很多的,React严格上只针对MVC的view层,Vue则是MVVM模式的一种实现; 数据绑定:Vue有实现了双向数据绑定,React数据流动是单向的 数据渲染:对于大规模数据渲染,React要比Vue更快,渲染机制启动时候要做的工作比较多; 数据更新方面:Vue 由于采用依赖追踪,默认就是优化状态:你动了多少数据,就触发多少更新,不多也不少。React在复杂的应用里有两个选择: (1). 手动添加 shouldComponentUpdate 来避免不需要的 vdom re-render。 (2).Components 尽可能都用 pureRenderMixin

前端学习阶段总结

蹲街弑〆低调 提交于 2019-12-06 12:06:29
前端学习总结 前端的核心技术为HTML、CSS、JavaScript。这三个是前端最基础也是很容易入门的语言。HTML是网页的骨架,CSS是网页的妆容,JS是网页的灵魂,三者相辅相成才能成功地弄出一个简单的网页。这也是学习后续复杂的前端的基础。 在有了上述基础后,选择vue.Js来用于构建用户界面。在vue的学习中,我遇到了一些困难和一些挫折,在此总结这段时间的学习成果。 Vue用vue-cli在创建后自动生成一个工程,在命令行中运行npm run dev, 当显示如上图这样编译成功后,就可以在浏览器搜索localhost:8080/,浏览器将会显示该工程效果。如果显示报错,有以下两个可能:1、warnning,一般情况下显示的warnning为格式不严谨所报错的,只需要按照cmd提示的warnning以及第几行的指示一个一个纠正即可。2.error,这个就是你的程序报错,需要根据提示的错误进行修改。直到修改到上图为止。 而在后续写代码时也可以实时通过浏览器预览效果,同时可以按f12了解该页面的架构,也可以在页面上修改某处的css,预览效果。 Vue组件包括 <template> 、 <script> 和 <style>。<scirpt>中的data必须是函数。 以上是vue的最基础内容,为了更好地搭建页面,满足不同的需求,我们需要更深入的学习。 组件之间的跳转—

西安葡萄城:赋能前端开发者,用技术整合服务,以技术驱动业务

此生再无相见时 提交于 2019-12-06 11:47:37
随着第五代移动通信技术(5G)的普及,中国互联网再次呈现出井喷式的发展前景,区块链、组件化开发、跨平台 & 动态化等先进理念相继诞生,不断催生出一系列具备数字化、智能化、ICT技术的新兴产业集群。 在它们的推动下,企业级前端应用越发丰富,开发迭代的速率也在显著提升,“连接、在线、数据、智能”逐渐成为了数字化应用的典型特征,而实现这一切的基础——前端开发技术,亦在这场互联网盛宴中扮演着越来越重要的角色。 图片来自于网络 全新的技术与开发模式,带来了巨大的产业风口。越来越多的厂商开始跻身于移动开发与Web应用领域。 遥想中国互联网发展之初,由于缺乏统一的开发标准和规范,导致跨平台的适配工作量巨大,相应的应用系统开发效率低下、调试成本极高,这严重阻碍了企业信息化转型的步伐。 而如今,互联网行业正逐步从单一的系统集成服务向产业链的前后端延伸扩展,产业链中的分工也在进一步细化。 2019年5月21日," 鸿蒙 " 系统发布之初,华为总裁任正非在接受记者采访时表示:" 做一个操作系统的技术难度不大,难度大的是生态,怎么建立起一个生态?这是一个大事情,慢慢来。"华为,作为通讯领域的巨头,已经开始着手布局其操作系统的生态。 作为全球领先的开发工具、商业智能解决方案提供商,葡萄城又是如何通过构建自己的开发生态?面对前端技术的不断发展变化,葡萄城又是如何整合服务,贴近用户使用场景

DRF--介绍和安装

∥☆過路亽.° 提交于 2019-12-06 06:43:23
前后端不分离 在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不适用于前端App应用,为了对接App后端还需再开发一套接口。 前后端分离 在前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。 在前后端分离的应用模式中,我们通常将后端开发的每一视图都称为一个接口,或者API,前端通过访问接口来对数据进行增删改查。API的风格有多种,但是现在比较主流且实用的就是本文要说的RESTful API。 RESTful RESTful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 REST全称是Representational State Transfer,中文意思是 表征状态转移 。

《基于Vue.js的Web前端应用研究》文献阅读(十五)

∥☆過路亽.° 提交于 2019-12-06 05:57:26
一、基本信息 标题:基于Vue.js的Web前端应用研究 时间:2017 来源:科技与创新 关键词:Web前端;Vue.js;JavaScript组件;Vue框架 二、研究内容 1.主要内容: 随着互联网的迅猛发展,用户对Web前端的使用体验、交互操作流程、外观有了更高的要求。特别是Web系统中越来越多的数据处理和业务逻辑开始偏向前端,导致Web前端工作量扩大,代码量增加。如果 仍然采用传统的方式开发设计Web前端,会导致前期开发度和后期维护难度增大,可扩展性变差。为了提高开发效率和代码复用率,越来越多的网页开发框架开始流行。于是先后提出了MVC、MVVM模式,方便 了构建基于事件的Web前端开发平台。本文主要介绍了基于MVVM模式的轻量级响应式框架Vue js的应用和研究,利用Vue框架实现了简化Web前端开发流程。 1应用需求 我校教师工作处为了更好地服务和管理全校教师借鉴全国教师管理系统,结合我校实际工作需求,开发-套Web教师管 理系统。该系统的主要要求有以下3个:(1)界面友好,美观大方。(2) 系统能实现对教 师的基本信息、教学、科研、学习经历、工作经历、培训、访学、获奖等信息的统计和管理。(3) 系统运行安全、稳定、速度快、便于管理。因为系统处于急用状态,开发、实施时间短,所以,决定采用前、后 端同时开发和调试,利用JSON API的方式,实现Web的前后分离

《基于模块化的前端开发框架的研究与实现》 论文阅读(十三)

寵の児 提交于 2019-12-06 05:56:32
一、基本信息 标题:基于Web前端的性能优化方案研究 时间:2017 来源:北京邮电大学 关键词:Web前端;模块化;JavaScript;Node.js;前端模板 二、研究内容 1.主要内容:   1.1研究背景与意义 当今互.联网飞速发展,网络用户的需求变化既快又大,大部分网站的更新周 期都是以日,小时甚至分钟为单位,在这种情况下,网站的前端就成了变化最频 繁的部分川。随着互联网公司对前端开发的逐渐重视,前端开发人数也越来越多, 但是技术人员的投入总是有限的,而前端开发领城并没有为开发者们提供一-种简 洁,有条理的方式来管理模块的方法,前端模块化问题经久不衰。 以JavaScript 模块化为例,其经历了无模块时代,即代码次序堆特的时代、 模块萌芽时代及当前的模块化组件化时代,ECMA2015 也将模块化纳入到规范 中,使模块化成为JavaScript规范,开发人员不断地在模块化领域进行摸索及探 求。模块化开发使得前端开发人员摆脱繁琐的文件依赖和命名冲突,增强代码复 用性,将代码划分模块管理,也方便开发人员的分工划分。每个人员对自己的模 块负责,考虑其复用性及可扩展性,从这个角度来看,模块化开发也提升了开发 人员的开发效率和代码质量。 本论文研究模块化技术,发现前端模块化在使用及应用场景等方面主要存在 以下问题,亟待进一步优化: (1)前端开发因其特殊性,在模块化方面-

FCC成都社区·前端周刊 第 1 期

旧巷老猫 提交于 2019-12-06 04:36:09
01. 2018 JavaScript 测试概览 文章介绍了JavaScript测试的关键术语、测试类型、工具和方法,并简要分析了工具jsdom、Istanbul、Karma、Chai、Wallaby等,测试框架mocha、jest、jasmine、AVA等以及UI测试工具TestCafe、WebdriverIO、Puppeteer等。 详情: https://medium.com/welldone-software/an-overview-of-javascript-testing-in-2018-f68950900bc3 02. WebAssembly在线IDE — Web Assembly Studio Web Assembly Studio是一个简单的在线IDE 详情: https://webassembly.studio/ 03. CanJS 4.0 一套前端架构库 CanJS 说不上快速,但其集成了自定义元素、可观察对象、路由等,是一款轻量级的JS库。Apple Store、Yahoo和HP等都有使用它。 详情: https://www.bitovi.com/blog/canjs-4.0 04. Chrome计划将非https连接的网站标记为不安全 谷歌刚刚宣布,从2018年7月开始,随着Chrome 68 的发布,未加载 https 的网页将被标记为“不安全”