我使用Rails3,JQuery和will_paginate gem来制作远程分页链接。已知的解决方案是:
$('.pagination a').live('click',function (){
$.getScript(this.href);
return false;
});
使用此代码,我会收到如下链接:http://localhost:3000/products?_=1300468875819&page=1
或http://localhost:3000/products?_=1300468887024&page=2
。所以小问题是:这个奇怪的参数是什么_=1300468887024
(看起来像Unix时间)。它的目的是什么?据我所知,这可能会导致搜索爬虫出现问题。
UPD :解决方案描述为here。
答案 0 :(得分:8)
这是一个cache buster。它也用于开发模式,以避免从浏览器缓存中获取旧请求。
(不幸的是,我发现的所有解释都与广告有关:S)
答案 1 :(得分:1)
如果你不介意为所有请求删除它,这是一个简单的解决方案:
jQuery.ajaxSetup({ cache: true });
答案 2 :(得分:0)
另一种解决方案是根据the documentation扩展jQuery的getScript函数:
jQuery.cachedScript = function(url, options) {
options = $.extend(options || {}, {
dataType: "script",
cache: true,
url: url
});
return jQuery.ajax(options);
};
这样,只有使用这种新方法的ajax调用才会使用缓存。另一方面,如果您使用了ajaxSetup方法,则默认情况下所有的ajax调用都会缓存,因为ajaxSetup会全局设置缓存属性。
现在,您可以使用$.cachedScript(location.href);
代替$.getScript(this.href);
。