@gpzjyw
2016-08-19T01:44:50.000000Z
字数 4327
阅读 363
Front-End Interview Solutions
为什么要模块化
模块化的价值
前端模块化如何实现
如何整合一个模块
本质是使用一个全局变量将其代码封装在一个函数中,从而利用闭包作用域为自身创建一个私有的命名空间。
优点:
缺点:
AMD(Asynchronous Module Definition)
异步模块定义规范,制定了定义模块的规则,这样模块和模块的依赖可以被异步加载;
优点:
缺点:
通用模块定义规范
AMD与CMD的区别
define的函数用toString转成字符串require(xxx),发现依赖项MVC:



MVP:
将 Controller 改名为 Presenter,改变通信方向。

MVVM:
双向绑定(data-binding):View 的变动,自动反映在 ViewModel,反之亦然

Vue:
前端模板渲染:jst,异步
后端模板渲染:freemarker,同步
GET-从指定的资源请求数据:
POST-向指定的资源提交要被处理的数据:
递归解析。
迭代解析。
参考自《Web缓存》
页面的缓存状态由HTTP头部决定,参数有四种,如下:
Cache-Control:max-age, s-maxage, min-fresh, no-cache, no-store, private, public。通用首部字段。
Expires:缓存过期时间,用来指定资源到期的时间,是服务器端的具体的时间点。实体首部字段。
Last-modified:服务器端文件的最后修改时间,需要和cache-control共同使用,是检查服务器端资源是否更新的一种方式。实体首部字段。
ETag:根据实体内容生成一段hash字符串,标识资源的状态,由服务端产生。响应首部字段。
Web缓存:数据库缓存、代理服务器缓存、CDN缓存、浏览器缓存。
TCP:传输层通信协议;
HTTP:应用层通信协议,应用广泛;
WebSocket:在TCP基础上实现的通信协议,与HTTP同属应用层,提供了一种全双工的通信方式,适用于对实时性要求高的场合,实现了服务端向客户端推送的功能;
Socket.IO:一个面向实时Web应用的JavaScript库,可在服务端和客户端运行。支持WebSocket协议,也可回退到Adobe Flash Sockets,JSONP拉取,Ajax长轮询。
搜索引擎无法识别JavaScript,通过Server生成一静态页面供搜索引擎抓取。
了解搜索引擎如何抓取网页和如何索引网页
需要知道一些搜索引擎的基本工作原理,各个搜索引擎之间的区别,搜索机器人(SE robot 或叫 web crawler)如何进行工作,搜索引擎如何对搜索结果进行排序等等。
Meta标签优化
主要包括主题(Title),网站描述(Description),和关键词(Keywords)。还有一些其它的隐藏文字比如Author(作者),Category(目录),Language(编码语种)等。
如何选取关键词并在网页中放置关键词
搜索就得用关键词。关键词分析和选择是SEO最重要的工作之一。首先要给网站确定主关键词(一般在5个上下),然后针对这些关键词进行优化,包括关键词密度(Density),相关度(Relavancy),突出性(Prominency)等等。
了解主要的搜索引擎
虽然搜索引擎有很多,但是对网站流量起决定作用的就那么几个。比如英文的主要有Google,Yahoo,Bing等;中文的有百度,搜狗,有道等。不同的搜索引擎对页面的抓取和索引、排序的规则都不一样。还要了解各搜索门户和搜索引擎之间的关系,比如AOL网页搜索用的是Google的搜索技术,MSN用的是Bing的技术。
主要的互联网目录
Open Directory自身不是搜索引擎,而是一个大型的网站目录,他和搜索引擎的主要区别是网站内容的收集方式不同。目录是人工编辑的,主要收录网站主页;搜索引擎是自动收集的,除了主页外还抓取大量的内容页面。
按点击付费的搜索引擎
搜索引擎也需要生存,随着互联网商务的越来越成熟,收费的搜索引擎也开始大行其道。最典型的有Overture和百度,当然也包括Google的广告项目Google Adwords。越来越多的人通过搜索引擎的点击广告来定位商业网站,这里面也大有优化和排名的学问,你得学会用最少的广告投入获得最多的点击。
搜索引擎登录
网站做完了以后,别躺在那里等着客人从天而降。要让别人找到你,最简单的办法就是将网站提交(submit)到搜索引擎。如果你的是商业网站,主要的搜索引擎和目录都会要求你付费来获得收录(比如Yahoo要299美元),但是好消息是(至少到目前为止)最大的搜索引擎Google目前还是免费,而且它主宰着60%以上的搜索市场。
链接交换和链接广泛度(Link Popularity)
网页内容都是以超文本(Hypertext)的方式来互相链接的,网站之间也是如此。除了搜索引擎以外,人们也每天通过不同网站之间的链接来Surfing(冲浪)。其它网站到你的网站的链接越多,你也就会获得更多的访问量。更重要的是,你的网站的外部链接数越多,会被搜索引擎认为它的重要性越大,从而给你更高的排名。
合理的标签使用
语义化。
一般是 6 个,可同时向一个域名发起 6 个请求。