2014年9月24日

摘要: 一、前言我们在日常的抓包过程中经常可以看到以Accept开头的请求首部,比如:Accept-Language 有一个q值,肯定有人好奇在HTTP规范中为什么要定义这个q值;还有在响应首部有一个名为Vary的首部,这个首部又有什么意义?如图所示:二、内容协商要讲清楚这两个问题,我们需要引入HTTP协议... 阅读全文
posted @ 2014-09-24 09:46 Hellohuman 阅读(2860) 评论(0) 推荐(0) 编辑

2014年9月20日

摘要: 一、应用场景浏览器与服务器之间保持一个长连接(http链接),服务器有最新的数据生成时及时推送到前端展现。典型场景:新邮件到达通知。二、业界常用的解决方案定时轮询,长轮询,websocket(HTML5新增的能力)其中长轮询兼容性较好,应用的较为广泛,但是切忌在移动网络中应用该技术。三、长连接前端代... 阅读全文
posted @ 2014-09-20 10:32 Hellohuman 阅读(1449) 评论(1) 推荐(0) 编辑

2014年9月19日

摘要: 一、简史IE5.5最早实现XHR,需要通过ActiveXObject创建xhr实例,直到IE7才定义了XMLHttpRequest对象。IE5.5实现XHR之后,其他浏览器紧随其后实现了XHR,直接命名为XMLHttpRequest。早期的XHR能力有限:只能传输文本,上传能力有限,而且不能跨域。为... 阅读全文
posted @ 2014-09-19 10:32 Hellohuman 阅读(1058) 评论(0) 推荐(0) 编辑
摘要: 一、面临的问题出于性能优化的考虑,通常资源服务器会对静态资源的HTTP响应首部添加Expires或者Cache-Control:max-age设置失效时间,如下图:这样,在失效时间到达之前,浏览器会使用缓存文件而不用重新发送HTTP请求。这就引起另一个问题:失效时间还未到,但是我们有新功能上线,如何... 阅读全文
posted @ 2014-09-19 08:49 Hellohuman 阅读(851) 评论(0) 推荐(0) 编辑

2014年9月14日

摘要: 一、前言缓存思想是计算机领域最伟大的思想之一,缓存对web应用有多重要,大家可以百度一下雅虎前端性能优化军规,看看启用缓存的排序有多靠前。对服务端而言缓存也异常重要,memcache已经变成互联网产品的标配,缓存服务器一旦停止工作,大量获取数据的请求涌入数据库导致数据库运行缓慢,进而导致整个系统响应... 阅读全文
posted @ 2014-09-14 07:11 Hellohuman 阅读(1546) 评论(0) 推荐(0) 编辑

2014年9月7日

摘要: 一、应用场景为了改善酷版139邮箱的代码结构,引入backbone的事件机制,按照MVC的分层思想搭建酷版云邮局的代码框架。力求在保持酷版轻量级的基础上提高代码的可维护性。二、遗留问题1、backbone的升级问题,新的特性无法引入2、backbone中的潜在BUG,若官方已修复则无法同步更新解决办... 阅读全文
posted @ 2014-09-07 08:50 Hellohuman 阅读(287) 评论(0) 推荐(0) 编辑

2014年9月2日

摘要: 一、跨源的定义一个“源”有三部分组成:协议、域名、端口。任一部分不一致即为跨源。比如:(http,example.com,80)和(https,example.com,443)就是不同的源。二、同源策略XHR的早期版本限制应用只能执行同源请求,即新请求的来源必须与旧请求的来源一致,如果后续请求不同源... 阅读全文
posted @ 2014-09-02 21:22 Hellohuman 阅读(1137) 评论(0) 推荐(0) 编辑

2014年8月30日

摘要: 一、前言确定了渐进式增强的上传方式,接下来我们需要将上传功能从具体的业务逻辑中剥离出来,作为公共组件供业务层调用。这就要求我们必须对业务层隐藏上传细节,只暴露统一的上传API。这时候大家是不是跟我一样想到了Facade模式?二、Facade模式实现文件上传,代码示例:/*上传组件,IE浏览器默认fl... 阅读全文
posted @ 2014-08-30 17:07 Hellohuman 阅读(934) 评论(0) 推荐(0) 编辑
摘要: 一、应用场景:有时候我们需要动态创建script标签实现脚本的按需加载,我们会为script标签绑定onload或者onreadystatechange事件,用于检测动态脚本是否加载并执行完毕,在事件处理程序中引用动态脚本创建的变量。二、问题描述:如果我们动态创建script标签并绑定事件处理程序后... 阅读全文
posted @ 2014-08-30 13:03 Hellohuman 阅读(728) 评论(0) 推荐(0) 编辑

2014年8月23日

摘要: 一、前言今天要介绍的命名冲突并不是系统内部的命名冲突,而是系统与浏览器插件之间的命名冲突。具体情况是这样的,去年6月份,客服接到N多投诉,反馈139邮箱无法正常使用。工单等级迅速上升,各方面的压力要求研发24小时内给出合理解释。二、现象描述:通过查看运维同事上传到工单中的图片可得出这样的结论:用户页... 阅读全文
posted @ 2014-08-23 08:06 Hellohuman 阅读(189) 评论(0) 推荐(0) 编辑

导航