Ajax技術(shù)在web中應(yīng)用的相當(dāng)廣泛,最近項(xiàng)目需要用到Ajax,由于主站所用的是Jquey,而某個(gè)欄目的開發(fā)用的是prototype,這樣一來就必須對(duì)JS代碼做調(diào)整了。
先列舉一下Ajax在Jquery和prototype中的實(shí)現(xiàn)。
Jquery:
<script language="javascript">
$(function(){
var box = {};
var remoteUrl = 'index.php';
box.interval = 5*60*1000;//5分鐘
box.showBoxInfo = function() {
jQuery.get(remoteUrl, function(data){
var msg_box = $('#msg_box');
msg_box.innerHTML = data;
}
});
}
box.run = function(){
this.showBoxInfo();
setInterval(this.showBoxInfo,this.interval);
};
box.run();
})
</script>
prototype:
<script language="javascript">
var box = {};
box.interval = 5*60*1000;//5分鐘
box.showBoxInfo = function(){
var pars = "";
var remoteUrl = 'index.php';
var myAjax = new Ajax.Request(
remoteUrl,
{
method: 'get',
parameters: pars,
onComplete: box.showResponse
});
};
box.showResponse = function(data){
var msg_box = $("msg_box") ;
msg_box.innerHTML = data.responseText;
};
box.run = function(){
this.showBoxInfo();
setInterval(this.showBoxInfo,this.interval);
};
box.run();
</script>
實(shí)際在引入setInterval函數(shù)后prototype卻不能刷新,這是為什么呢?
原來是prototype對(duì)于相同的URL有緩存機(jī)制,應(yīng)此不能刷新頁面,特別是在用戶使用F5或點(diǎn)擊“刷新”后,會(huì)出現(xiàn)Ajax響應(yīng)區(qū)空白的bug,這樣就必須讓prototype不刷新。
對(duì)于prototype中的URL添加隨機(jī)數(shù)
原:var remoteUrl = 'index.php';
修改后:var remoteUrl = 'index.php?rand='+Math.random();
使用GET方式產(chǎn)生一個(gè)與頁面顯示無關(guān)的參數(shù)即可。
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答?。?點(diǎn)擊進(jìn)入論壇