高性能javascript编程(复读2)

----------------------------------------------

1.请求数据(request data)

有5种常用技术用于向服务器请求数据:XMLHttpRequest,dynamic script tag insertion(动态脚本标签插入),iframes,comet,multiparty XHR(多部分的xhr);

(1)xhr :一般用get和post请求,当URL的参数长度超过了2048个字符时,才使用post提交数据;因为IE限制URL的长度,过长将导致请求被截断;

(2)动态脚本插入:动态脚本插入相比只能提供更少的控制;你不能通过请求发送消息头;参数只能通过get方式传递;不能用POST;你不能设置请求的超时或者重试;实际上,你不需要知道它是否失败了,你必须等待所有数据返回之后才可以访问他们。----即:JSONP

(3)IMage标签模拟,一般只是向服务器发送数据,不需要很多的返回;

2:缓存(cache)

(1)在服务器端,设置HTTP头,确保返回报文将被缓存在浏览器中;

(2)在客户端,于本地缓存已获取的数据;不要多次请求同一数据;

第一种技术最容易设置和 维护;第二个给你最大程度的控制;

设置HTTP头;

如果你希望ajax相应报文能够被浏览器缓存;你必须发起GET请求;且你必须在相应报文发送正确的HTTP都,Expires头告诉浏览器应当缓存响应报文多长时间;

----------------------------------------------------------------------------------------------------------------------------------------------------

当网页浏览器请求一个资源时,它通常发送一个Accept-Encoding的HTTP头,让网页服务器知道传输所支持的编码类型;此信息主要用户允许文档压缩以获取更快的速度;从而改善用户体验;Accept-Encoding的取值范围:gzip,compress,deflate和identity

-----------------------------------------------------------------------------------------------------------------------------------------------------

使用内容传递网络CDN;

<完>

时间: 2024-10-12 23:55:14

高性能javascript编程(复读2)的相关文章

高性能JavaScript 编程实践

前言 最近在翻<高性能JavaScript>这本书(2010年版 丁琛译),感觉可能是因为浏览器引擎的改进或是其他原因,书中有些原本能提高性能的代码在最新的浏览器中已经失效.但是有些章节的有些内容还是相当不错的,譬如第八章编程实践,为了方便以后的查阅,对此做个总结.失效的代码也会在以后做更进一步的探索. 避免双重求值 这个优化策略很好理解,我们可能都已经不知不觉地运用在了实际的编程中: // not use this setTimeout('alert("hello world&qu

高性能javascript编程(复读1)

一: 1.同样的事情发在使用src属性加载javascript的过程中,浏览器必须首先下载外部文件的代码,这要占用时间,然后解析运行此代码.此过程中,页面解析和用户交互被完全阻塞: 2.浏览器在遇到body标签之前,不会渲染任何部分: 3.YAHOO! 优越性能小组,关于javascript的第一条规律:讲脚本放在底部: 4.每个HTTP请求会产生额外的性能负担,下载一个100K的文件,比下载4个25K的文件要快:可以将这些文件整合成一个文件,只需要一个<script>标签,可以减少性能损失,

读高性能JavaScript编程 第二章 让我知道了代码为什么要这样写

代码为什么要这样写? function initUI(){ var doc = document, bd = doc.body, links = doc.getElementsByTagName_r("a"), i = 0, len = links.length; while(i < len){ update(links[i++]); } doc.getElementById("go-btn").onclick = function(){ start(); }

读高性能JavaScript编程 第四章 Conditionals

if else 和 switch    &&    递归 if else 和 switch 一般来说,if-else 适用于判断两个离散的值或者判断几个不同的值域.如果判断多于两个离散值,switch表达式将是更理想的选择. 如同 我们在写sql 总习惯把可以过滤掉更多的where 放在前面一样,当 if else 判断的离散值较多时也因该这么干. 二分搜索法: if (value == 0){ //要优化的代码 return result0; } else if (value == 1)

读高性能JavaScript编程 第一章

草草的看完第一章,虽然看的是译文也是感觉涨姿势了, 我来总结一下: 由于 大多数浏览器都是 single process 处理 ui updatas and js execute 于是产生问题: js (script tag) will blocking page processing 上图说话: 于是大家动脑筋想办法 想到了三个办法 1. Parallel downloads, then execute  并行下载,然后执行. 2.Download times less,Less downlo

读高性能JavaScript编程学英语 第一章第三页第二段话

Script Positioning 脚本位置 The HTML 4 specification indicates that a <script> tag may be placed inside of a <head> or <body> tag in an HTML document and may appear any number of times within each. Traditionally, script> tags that are use

《高性能javascript》 领悟随笔之-------DOM编程篇(二)

<高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整个页面文档.DOM编程性能一直以来都是非常受开发者关注的话题,如何编写高性能的DOM是前端开发必不可少的技能. 1.重绘与重排 当浏览器加载完页面所有的元素.js.css.图片之后会自动生成两个数据结构: 1.dom树 (图片为转载) 如图所示,dom树表示了整个页面文档的结构,通过访问dom树我们可以得到某

高性能JavaScript DOM编程

转自(学习之用) 作者:韩子迟 网址:http://www.cnblogs.com/zichi/p/4713031.html 我们知道,DOM是用于操作XML和HTML文档的应用程序接口,用脚本进行DOM操作的代价很昂贵.有个贴切的比喻,把DOM和JavaScript(这里指ECMScript)各自想象为一个岛屿,它们之间用收费桥梁连接,ECMAScript每次访问DOM,都要途径这座桥,并交纳“过桥费”,访问DOM的次数越多,费用也就越高.因此,推荐的做法是尽量减少过桥的次数,努力待在ECMA

《高性能javascript》一书要点和延伸(上)

前些天收到了HTML5中国送来的<高性能javascript>一书,便打算将其做为假期消遣,顺便也写篇文章记录下书中一些要点. 个人觉得本书很值得中低级别的前端朋友阅读,会有很多意想不到的收获. 第一章 加载和执行 基于UI单线程的逻辑,常规脚本的加载会阻塞后续页面脚本甚至DOM的加载.如下代码会报错: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8