prototype与jquery下Ajax实现的差别


Posted in Javascript onSeptember 13, 2009

先列举一下Ajax在Jquery和prototype中的实现。
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>

实际在引入setInterval函数后prototype却不能刷新,这是为什么呢?
原来是prototype对于相同的URL有缓存机制,应此不能刷新页面,特别是在用户使用F5或点击“刷新”后,会出现Ajax响应区空白的bug,这样就必须让prototype不刷新。
对于prototype中的URL添加随机数
原:var remoteUrl = 'index.php';
修改后:var remoteUrl = 'index.php?rand='+Math.random();
使用GET方式产生一个与页面显示无关的参数即可。
Javascript 相关文章推荐
多个iframe自动调整大小的问题
Sep 18 Javascript
Javascript代码混淆综合解决方案-Javascript在线混淆器
Dec 18 Javascript
JS Loading功能的简单实现
Nov 29 Javascript
原生javascript模仿win8等待提示圆圈进度条
Apr 24 Javascript
javascript元素动态创建实现方法
May 13 Javascript
Vue.js常用指令的使用小结
Jun 23 Javascript
详解基于angular-cli配置代理解决跨域请求问题
Jul 05 Javascript
React.Js添加与删除onScroll事件的方法详解
Nov 03 Javascript
javascript中UMD规范的代码推演
Aug 29 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
Aug 09 Javascript
React实现轮播效果
Aug 25 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
Sep 22 Javascript
JS 参数传递的实际应用代码分析
Sep 13 #Javascript
javascript类继承机制的原理分析
Sep 12 #Javascript
javascript 类定义的4种方法
Sep 12 #Javascript
一个简单的javascript类定义例子
Sep 12 #Javascript
一个简单的JavaScript 日期计算算法
Sep 11 #Javascript
关于javascript 回调函数中变量作用域的讨论
Sep 11 #Javascript
javascript 一些用法小结
Sep 11 #Javascript
You might like
PHP常用函数小技巧
2008/09/11 PHP
深入探讨<br />和 \r\n两者有什么区别??
2013/06/05 PHP
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
python+mysql实现简单的web程序
2014/09/11 Python
python求pi的方法
2014/10/08 Python
Python批量转换文件编码格式
2015/05/17 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
2014元旦晚会策划方案
2014/02/19 职场文书
要账委托书范本
2014/09/15 职场文书
2014年预算员工作总结
2014/12/05 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
活动宣传稿范文
2015/07/23 职场文书
工作感想范文
2015/08/07 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
Python初学者必备的文件读写指南
2021/06/23 Python
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
MySQL读取JSON转换的方式
2022/03/18 MySQL
Python学习之时间包使用教程详解
2022/03/21 Python
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL