Странное подчеркивание param в удаленных ссылках - PullRequest
6 голосов
/ 18 марта 2011

Я использую 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 ]

8 голосов
/ 18 марта 2011

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

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

1 голос
/ 03 апреля 2012

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

jQuery.ajaxSetup({ cache: true });
0 голосов
/ 02 января 2013

Другим решением будет расширение функции 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);.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...