Nano Hash - криптовалюты, майнинг, программирование

Как предотвратить кеширование от jQuery Ajax?

Может ли кто-нибудь помочь мне с этим? У меня есть веб-страница, использующая .manifest для кэширования автономного хранилища. На этой странице я использую вызов jQuery ajax для получения данных с сервера. Если я сначала загружаю страницу, все в порядке. Я могу переключаться между онлайн и оффлайн. Но проблема в том, что когда я возвращаюсь в сеть и обновляю страницу. jQuery ajax больше не может общаться с сервером. Есть ли способ для ajax поговорить с сервером или очистить автономный кеш?

Мой вызов ajax таков:

        $.ajax({

            type: "GET",

            url: requestUrl,
            success: localSuccess,

            error: error,

            dataType: "text",
            cache:false
        });
09.06.2010

  • Я в замешательстве, зачем вам очищать автономный кеш, если вы не можете получить доступ к серверу? 09.06.2010
  • Керри, я не хочу очищать автономный кеш. Я просто хочу синхронизировать свое локальное хранилище (функция HTML5) с сервером. Но я не могу выполнить синхронизацию, если я разрешаю автономное кэширование. Без этого кеша работает нормально. 09.06.2010

Ответы:


1

У меня есть этот фрагмент кода в верхней части каждой страницы/мастер-страницы

    //Disable caching in IE, becuase it's EVIL!
    $(document).ready(function () {
        $.ajaxSetup({ cache: false });
    });
09.06.2010
  • Я только что написал это, но отложил публикацию, потому что «cache: false» уже передается как последняя настройка в приведенном примере. 09.06.2010
  • Спасибо, Аластер. Но я все еще не могу подключиться к серверу. :(. Теперь мне интересно, связано ли это с кешем браузера. 09.06.2010
  • @cynwong: К сожалению, не увидел cache:false в вызове ajax. Тогда мой код не поможет. Можете ли вы предоставить более подробную информацию/больше javascript в отношении выбора между онлайн/оффлайн. Я немного запутался. 09.06.2010
  • Аластер, я определяю онлайн/офлайн с помощью navigator.onLine. Я использую функцию локального хранилища HTML5. Я хотел бы синхронизировать, когда он в сети. Таким образом, в автономном режиме пользователи по-прежнему смогут получить доступ к данным и изменить их, если захотят. 09.06.2010

  • 2

    поместите случайную строку в URL-адрес, например, "get.php?random="+Math.random()" может решить эту проблему. Это не лучшее решение, но оно отлично работает.

    09.06.2010

    3

    Я знаю, что очень-очень опаздываю на эту вечеринку, но просто чтобы рассказать об этом. И мне жаль воскрешать этот вопрос из страны зомби. В сафари и некоторых старых браузерах (из того, что я видел до сих пор, cache:false иногда не работает). для решения, более совместимого с кросс-браузером, вы можете добавить параметр данных к вызову ajax() и добавить генератор случайных чисел в качестве параметра. Это было бы что-то вроде этого.

     var callback = function () {
       $.ajax({
          type: "GET",
          url: requestUrl,
          success: localSuccess,
          error: error,
          dataType: "text",
    
          //won't work sometimes
          cache:false,
    
          //start random number generator
          data : { r: Math.random() }
         //end random number generator
       });
      }
    

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

    06.06.2013
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..