HTML5技术

2016年某前端群题目答案参考 - 帅的相对论(5)

字号+ 作者:H5之家 来源:博客园 2016-03-03 15:01 我要评论( )

ReactJs:基于组件化开发,而且所有组件有其状态。将DOM封装为可以相互组合的 Component, 并且将DOM操作抽象为状态的改变。 2.对于Javascript中OOP的理念,你认为在项目开发中有没有必要,什么样的项目适合前端OOP,

ReactJs:基于组件化开发,而且所有组件有其状态。将DOM封装为可以相互组合的 Component, 并且将DOM操作抽象为状态的改变。

2.对于Javascript中OOP的理念,你认为在项目开发中有没有必要,什么样的项目适合前端OOP,请谈谈你的看法;

我个人认为不太重要,在前端页面不需要刻意的去追求面向对象。

因为对于面向对象我们需要注意“继承、多态、封装、组合”等特性,它们的出发点都是“分离减少关注点”。使程序以最小的代价来适应“关注点”的变化。

但对于前端代码需要关注的东西与后端存在许多不同,后端程序大多只需关注项目的“数据+行为”——关注点不多且容易预测。而前端则是“数据+行为+展现+交互”,其中多出来的“展现+交互”决定了前端的关注点更多且更加无从预测,除非人为限制减少相关的关注点,让UI和交互套在一个相对死的范围内进行,而这样难免会影响到UI的灵活性,不可避免的面对:“丑,慢,大”等特性。

结合以上,前端层面上做好代码的分层、解耦、结构化则更优,但做这些事和追求面向对象没有必然关系。

3.在Javascript开发中,关于性能优化,分享一下你相关的经验?

对于JS开发个人总结大概如下:

基本原则:

尽可能的减少请求。

代码开发遵守规范

具体细节:

基本的代码规范,如JS脚本放在底部加载,尽量写为外部文件,基本的上线压缩等

其余一些细节包括

资源加载

资源加载:首页加载性能提升

按需加载:静态资源依赖关系表,lazyload

开发规范

AJAX:缓存AJAX,请求:GET

减少DOM操作

避免全局变量,尽量使用语言本身的构造和内建函数等。

等等。。

具体可参考前端性能优化指南

4.对于模块开发你是怎么看的?

前端采用模块化开发,使得开发体验大大增强,也使代码管理更加清晰、规范。主要表现为以下几点:

减少命名冲突,消除全局变量

一个模块一个文件,组织更清晰

依赖自动加载,按需加载

其中文件按需加载,依赖自动管理,使得更多精力去关注模块代码本身,开发时不需要在页面上写一大堆script引用,一个require初始化模块就搞定。

前端模块化规范标准:

CommonJs (Node.js)

AMD (RequireJS)

CMD (SeaJS)

也可参考这里的前部分前端模块化开发的价值

5.对于Javascript MVC开发你是怎么看的?分享一下你了解的相关信息?

简单了解的采用MVC开发模式的库包括:

Backbone.js——优点:社区较好,缺点:抽象较弱。

Ember.js——优点:丰富的模板系统,拥有复合视图和UI绑定;缺点:相对较新,还不够成熟

Angular.js——优点:对模板范围和控制器设计有很好的考虑,拥有依赖注入系统,支持丰富的UI绑定语法。缺点:代码的模块性不强,视图的模块化也不够。

其余了解的不多

但平常做项目的时候,特别是大项目,一定要把MVC的概念放在业务场景里多想想。MVC并不是终极思想。它有它适合的地方,但也有其局限的一面。还有前端MVC的话,对应的后台最好是REST风格的接口。还有并不是越复杂的前端业务,越紧迫地需要MVC。一定要多想多看。

MVC的一大问题在于:MVC开发模式会将本身简单的系统大大增加结构的复杂性,并且降低效率。

但整套前端开发其实本质上可以看做一个大大的MVC架构:

Model: HTML/XHTML中的信息

View: Style sheet

Controller: EMAScripts等等脚本

6.AJAX是什么? AJAX跨域的解决办法?

AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),是一种创建交互式网页应用的网页开发技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

AJAX跨域解决:

使用中间层过渡的方式:

就是在AJAX与不同域的服务器进行通讯的中间加一层过渡,这一层过渡可以是PHP、JSP、c++等任何具备网络通讯功能的语言,由中间层向不同域的服务器进行读取数据的操作。

使用<script>标签

利用<script>标签中src来请求,因为<script>标签的src属性不存在跨域的问题。

jsonp

本文固定链接: 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 前端工具的安装 - 韩子卢

    前端工具的安装 - 韩子卢

    2017-05-02 08:00

  • 移动前端常用meta标签 - 0jiji0

    移动前端常用meta标签 - 0jiji0

    2017-04-21 12:00

  • 前端项目从0到1的感悟 - liliangel

    前端项目从0到1的感悟 - liliangel

    2017-04-20 12:00

  • 前端页面跳转并取到值 - 哈哈哈是我呀

    前端页面跳转并取到值 - 哈哈哈是我呀

    2017-04-14 14:01

网友点评
s