高性能javaScript(七)—— Ajax

2020-12-19  本文已影响0人  晓蟲QwQ

图片信标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中,因为动态脚本注入无法判别调用对象

上一篇 下一篇

猜你喜欢

热点阅读