Каковы предпочтительные способы перенаправления и перезагрузки в 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)
.