定義全局回調(diào)函數(shù),把 timestamp 參數(shù)寫成 window 下的方法名稱。這里我的格式是 jsonp + 時間戳。發(fā)送請求和執(zhí)行回調(diào)函數(shù)統(tǒng)一使用同一個 timestamp 參數(shù)即可。
/**
* 遠(yuǎn)程數(shù)據(jù)加載
* @method loader
* @param {String} o 參數(shù)配置
*/
function loader (o) {
var timestamp = 'jsonp' + new Date().getTime();
//定義全局回調(diào)函數(shù)
window[timestamp] = function (data) {
//執(zhí)行配置參數(shù)中的回調(diào)函數(shù)
o.callback(data);
}
//讀取遠(yuǎn)程 JSONP 數(shù)據(jù)
KISSY.getScript(o.url + timestamp);
}執(zhí)行加載時,調(diào)用 loader 方法:
loader({
url : 'http://ooxx.html?callback=',
callback : function (data) {
console.log(data);
}
})