javascript
  • internet-explorer
  • caching
  • 2016-11-16 4 views 0 likes 
    0

    Я застрял в очень странной проблеме.window.location.href работает только после очистки кеша браузера IE

    Вот пример кода

    $.ajax({ 
        method: "POST", 
        data: content, 
        url: '/signin/', 
        success: function (response) { 
         window.location.href = 'test.html'; 
        }, 
        error: function (xhr, status, err) { 
         errorHandler(xhr); 
        } 
    }); 
    

    Сначала я думал, что перенаправление работает только после открытия отладчика, и поиск в этом направлении.
    По результатам и темам я прокомментировал все заявления console.log. Не повезло.

    Затем выяснилось, что только перенаправление не работает.
    Тогда я попытался
    window.location.replace("test.html");,
    window.location.assign("test.html");,
    window.location.href = test.html,
    window.open('test.html','_self', null , false);, setTimeout('window.navigate("test.html");', 1);еще не повезло..

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

    Чтобы получить работу по перенаправлению, я должен либо очищать кеш браузера каждый раз, либо отключать отладчик.

    Как получить перенаправление без открытия инструмента для разработчиков?

    Я ценю помощь.

    Спасибо.

    ответ

    0

    Actully Перенаправление не является проблемой.
    Была другая проблема с bizzare, IE использовал кешированный отклик, когда инструмент разработчика не открыт, как описано в this answer.

    Поэтому я просто добавил cache : false к моему запросу ajax.

    0

    для этого, может быть, потому, что ваш браузер кэширует содержимое ... позволяет увидеть, если вы используете хром, и режим разомкнутого разработчик, вы можете увидеть это: enter image description here

    и, возможно, что-то эквивалентное ..

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

    надеюсь, что это поможет

    Edit: надеюсь, что это поможет в случае, если вы используете IE: enter image description here

    +0

    Ганс, как это мне поможет? Пожалуйста, снова прочитайте и поймите вопрос. –

    +0

    Потому что при разработке браузер может все еще кэшировать активы, поэтому, если вы очищаете кеш или открываете инструменты отладчика/разработчика, вы можете продолжить, потому что обычно у инструментов разработчика будет возможность отключить кеширование. это не поможет вам, но у вас может быть дополнительная информация о работе браузера. помните, что когда они создадут браузер, они будут нацелены на потребителя, и мы можем предположить, что у них меньше знаний о кешировании и т. д., поэтому вы ожидаете, что они включат кэширование по умолчанию и обеспечат отключить кеш в режиме разработчика. открытие инструментов разработчика - это сказать, что вы разработчик –

    +0

    Я хочу сказать, что в режиме разработчика есть опция, которая отключает кеш, чтобы помочь вам понять «Теперь я понял, когда открываю отладчик и очищаю кеш браузера и закрываю отладчик снова, то перенаправление работает только один раз после этого ». и, скорее всего, вы, я и другие разработчики должны открыть инструмент разработчика при разработке в CSS и JS, особенно когда мы уже используем web-сервер, а не базу файлов. –

    Смежные вопросы