- 减少请求数,可通过合并JavaScript和CSS文件,或使用MXHR。
- 缩短页面加载时间,页面主要内容加载完成后,用Ajax获取那些次要的文件。
- 确保代码错误不会输出给用户,并在服务端处理错误。
图片信标Beacons,类似于动态脚本注入
var url = "/status_tracker.php";
var params = [
'step=2',
'time=1248027314'
];
var beacons = new Image();
beacons.src = url + "?" + params.join('&');
beacons.onload = function() {
if(this.width == 1) {
//成功
}
else if(this.width == 2) {
//失败,请重试并创建另一个信标
}
};
beacons.onerror = function() {
//出错,稍后重试并创建另一个信标。
};
JSON-P
当使用XHR时,JSON数据被当成字符串返回。该字符串紧接着被eval()转换成原生对象。然而,当使用动态脚本注入时,JSON数据被当成另一个JavaScript文件作为原生代码执行。为实现这一点,这些数据必须封装在一个回调函数里。这就是所谓的“JSON填充(JSON with padding)”或JSON-P。
需要处理10000或1000000个元素的列表,JSON-P比JSON会好很多
ps:不要把任何敏感数据编码在JSON-P中,因为动态脚本注入无法判别调用对象
网友评论