Время ожидания высоко при использовании window.местоположение.хреф ОР.назначить или.перезагрузить

Я использую перенаправление JavaScript после вызова ajax (после обновления содержимого). Я пробовал ниже методы, все очень медленно. На вкладке "Сеть" отображается время ожидания 4.44 to 5 секунд. (Что очень расстраивает клиентов: ()

window.location.assign(to_redirect);
window.location.replace(to_redirect);
location.href= to_redirect; 
window.location.href= to_redirect; 
window.location = to_redirect; 

While просмотр сайта со страницы на страницу (с щелчками мыши) это время ожидания 350 мс to 450ms.

почему это так ? Есть что-нибудь? то, что я пропустил, или любой другой способ, который быстрее?

обновление:

согласно запросу комментатора ниже приведен скриншот.

нажав ссылку страницы, обычным способом.

enter image description here

после сохранения данных и перенаправления с помощью JavaScript.

enter image description here

2 ответов


Я пробовал все решения, представленные в комментариях, спасибо всем. В соответствии с комментарием @YanjunLin я попробовал clickИнг элемент непосредственно с jQuery, а не window объект перенаправления. И это сработало.

однако метод щелчка быстрее на 60-70%, чем другие методы для моего приложения.

кто-нибудь в будущем приходит сюда попробовать элемент щелчка ($('element selector').click()) метод, я надеюсь, что это будет работать и для вас.

обратите внимание, что это зависит от архитектуры приложения. Может случиться, что Window.location.reload/assign etc быстрее для вашего приложения. Но вы можете попробовать это решение.

обновление:

согласно комментарию prefetching также является значительным фактором, если у вас есть много статических активов для загрузки при каждой загрузке страницы.


Я считаю, что вы страдаете от кэширования вашим веб-сервером. Вы можете попытаться изменить настройки кэша с помощью мета-тегов, но вы потеряете преимущества кэширования. Есть простой трюк, который я делаю, который обычно помогает во всех случаях. Сделайте URL-адрес, который вы отправляете, уникальным, добавив к нему метку времени. мое приложение.РНР?ts=1503710749 Эта уникальность должна вызвать немедленную обработку вашим веб-сервером.