远程链接中的奇怪下划线参数

时间:2011-03-18 17:26:18

标签: ruby-on-rails ajax parameters

我使用Rails3,JQuery和will_paginate gem来制作远程分页链接。已知的解决方案是:

$('.pagination a').live('click',function (){
  $.getScript(this.href);
  return false;
});

使用此代码,我会收到如下链接:http://localhost:3000/products?_=1300468875819&page=1http://localhost:3000/products?_=1300468887024&page=2。所以小问题是:这个奇怪的参数是什么_=1300468887024(看起来像Unix时间)。它的目的是什么?据我所知,这可能会导致搜索爬虫出现问题。

UPD :解决方案描述为here

3 个答案:

答案 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);