Странное подчеркивание 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);
,