Каковы предпочтительные способы перенаправления и перезагрузки в Dart?
Используем ли мы только: window.location.href = window.location.href?
Каковы предпочтительные способы перенаправления и перезагрузки в Dart?
Используем ли мы только: window.location.href = window.location.href?
Существует несколько различных способов обработки изменений URI, и каждый из них имеет свою собственную цель.
Если вы хотите отправить пользователя в другой URI:
window.location.assign('http://google.com')
Этот пользователь отправляет пользователя в Google, сохраняя историю просмотров (история кнопок на задней панели). Это похоже на щелчок по ссылке.
window.location.href = 'http://google.com'
То же, что и выше, это еще один способ сделать это. href - это сеттер и вызывает назначение. Я чувствую, что предыдущая версия чище.
window.location.replace('http://google.com');
Однако replace() метод LocalLocation не только отправляет пользователя на Google, но также не помещает исходную страницу в историю сеансов, а это означает, что пользователь не будет страдать от нескончаемого кошмара с обратной связью.
Это по существу то же самое, что и перенаправление HTTP. История пропущена.
Если вы хотите выполнить перезагрузку/обновление.
window.location.assign(window.location.href)
Перезагружает текущую страницу в тот же URI. Это означает, что не содержит POST данные. Некоторые из ресурсов (например, изображения и т.д.) Могут меня перезагрузить из кеша, так что это может быть не полная перезагрузка.
Это по существу то же самое, что нажать F5 и пропустить отправку данных POST.
window.location.href = window.location.href
Опять же, как и предыдущий.
window.location.reload()
Этот способ перезагрузки страницы также приводит к отправке данных POST. "Версия JavaScript" window.location.reload() также поддерживает параметр, который указывает, следует ли пропускать кеш или нет. Однако текущая реализация Dart не поддерживает этот параметр и по умолчанию извлекает ресурсы из кеша.
Этот параметр кеша может быть добавлен в Dart в какой-то момент, но он еще не существует. Когда он появится, вы, скорее всего, просто передадите true в качестве первого параметра, а затем он будет похож на Ctrl + Shift + R.
<a>.Используйте window.location.assign(url).
Используйте window.location.replace(url).
POST данными.Используйте window.location.reload().
POST данных.Используйте window.location.assign(window.location.href).
Недоступно, может быть, в будущем. Вероятно, это будет window.location.reload(true).