jquery的$.getJSON或$.get缓存的解决办法
做了可口可乐的一个宣传项目,用到很多ajax,结果忽然发现,在某些二流浏览器里,js缓存很严重。
于是在getJSON中加了个随机数
如$.getJSON(“aaaa.php”,{r=Date().getTime()},function(){……});
这样每次请求的时候,就都会变一个地址,就不存在js缓存了。
做了可口可乐的一个宣传项目,用到很多ajax,结果忽然发现,在某些二流浏览器里,js缓存很严重。
于是在getJSON中加了个随机数
如$.getJSON(“aaaa.php”,{r=Date().getTime()},function(){……});
这样每次请求的时候,就都会变一个地址,就不存在js缓存了。
一、用前必备
官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
API: http://jquery.bassistance.de/api-browser/plugins.html
当前版本:1.6
需要JQuery版本:1.2.6+, 兼容 1.3.2
<script src="../js/jquery.js" type="text/javascript"></script>
<script src="../js/jquery.validate.js" type="text/javascript"></script>
二、默认校验规则
(1)required:true 必输字段
(2)remote:"check.php" 使用ajax方法调用check.php验证输入值
(3)email:true 必须输入正确格式的电子邮件
(4)url:true 必须输入正确格式的网址
(5)date:true 必须输入正确格式的日期
(6)dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
(7)number:true 必须输入合法的数字(负数,小数)
(8)digits:true 必须输入整数
(9)creditcard: 必须输入合法的信用卡号
(10)equalTo:"#field" 输入值必须和#field相同
(11)accept: 输入拥有合法后缀名的字符串(上传文件的后缀)
(12)maxlength:5 输入长度最多是5的字符串(汉字算一个字符)
(13)minlength:10 输入长度最小是10的字符串(汉字算一个字符)
(14)rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
(15)range:[5,10] 输入值必须介于 5 和 10 之间
(16)max:5 输入值不能大于5
(17)min:10 输入值不能小于10
开发过程中经常要处理页面表单元素,如:在下拉框select中获取selected的value值,在复选框checkBox中获取checked的value值等,来触发和调用其它页面表单元素,制作出交互性强,页面友好的表单。jQuery通过元素$(#id)产生一个Object对象,通过对获取的对象深入了解,完全可以获取任何页面元素中的任何信息,为了工作方便,我总结了相关jQuery操作object对象的方法,获取下拉框selected,复选框和单选框checked,文本框value值,供参考。
表单实例:
一,html部分
AJAX 库 API 是一种内容分布网络,可载入最受欢迎的开源 JavaScript 库的架构。通过使用 Google AJAX API 载入程序的 google.load() 方法,您的应用程序能够迅速从全球任何位置访问不断增长的、最受欢迎的开源 JavaScript 库列表,包括:
Google 直接与关键相关人员配合来维护每个库的利益,并在最新稳定版本发布时接受这些版本。一旦我们托管给定库的版本,我们承诺无限期地托管该版本。
AJAX 库 API 在使用库集合的同时消除了用 JavaScript 开发混搭的不便之处。我们消除了托管库的不便之处、正确地设置缓存标头、与最新错误修正日期保持一致等。
今天做一个效果,一直在firefox下调试,一点问题都没有,可是到IE下却怎么着都不显示变化了。
我用了一个append向一个表格追加内容,然后用
$("#xtable").fadeIn(“1000”);
缓显出来,可是在firefox和google chrom都没有问题,就是IE(版本8)就是愣是显示不出来,没有相关的调试插件,也不知道数据更新了没有。开始一直以为是数据没追加过去呢。
后来看了看jquery手册,发现它用自定义时间的时候,没有双引号,仅仅是诸如"slow"这种默认时间效果的情况下才有双引号,于是我去掉了自定义时间上的双引号,变成:
$("#xtable").fadeIn(1000);
问题解决了,一个引号害的我费了半个小时的劲调试。。。
在jquery效果中,我们可能经常需要在各个效果之间加入一个时间等待。如某个div显示出来,隔几秒之后再隐藏。
jquery官方网站中有一个非常好的例子。
在你的js文件中添加如下代码:
$.fn.wait = function(time, type) { time = time || 1000; type = type || "fx"; return this.queue(type, function() { var self = this; setTimeout(function() { $(self).dequeue(); }, time); }); };
具体用法是,.wait( [time], [type] )
第一个参数是时间,默认是1000毫秒。
第二个参数是类型,默认是fx即动画效果
function runIt() { $("div").wait() .animate({left:'+=200'},2000) .wait() .animate({left:'-=200'},1500,runIt); } runIt();
jquery网站的样例:http://docs.jquery.com/Cookbook/wait
Recent Comments