Странное подчеркивание param в удаленных ссылках

Я использую 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: решение описано здесь.

3 ответа

Решение

Это кеш разбойник. Он также используется в режиме разработки, чтобы избежать получения старого запроса из кэша браузера.

(к сожалению, все объяснения, которые я нашел, основаны на рекламе:S)

Это простое решение, если вы не против удалить его для всех запросов:

jQuery.ajaxSetup({ cache: true });

Другое решение было бы расширить функцию getScript jQuery согласно документации:

jQuery.cachedScript = function(url, options) {
  options = $.extend(options || {}, {
    dataType: "script",
    cache: true,
    url: url
  });
  return jQuery.ajax(options);
};

Таким образом, только вызовы ajax, использующие этот новый метод, будут использовать кеш. С другой стороны, если вы используете метод ajaxSetup, все ваши вызовы ajax будут кэшироваться по умолчанию, так как ajaxSetup устанавливает свойство cache глобально.

Теперь вы можете использовать $.cachedScript(location.href); вместо $.getScript(this.href);,

Другие вопросы по тегам