- javascript — window.location.reload (true) не правильно перезагружает страницу
- Решение
- JavaScript: Window Location
- Window Location Href
- Window Location Hostname
- Window Location Pathname
- Window Location Protocol
- Window Location Port
- Window Location Search
- Window Location Hash
- Window Location Assign()
- Window Location Reload()
- Window Location Replace()
- Window Location toString()
- Пример
- Форум
- Справочник
- window.location
- Описание, примеры
- Объект Location
- Свойства объекта Location
- Методы объекта Location
- location.reload(true) is deprecated
- 8 Answers 8
- javascript — window.location.reload (true) не правильно перезагружает страницу
- Решение
javascript — window.location.reload (true) не правильно перезагружает страницу
У меня есть страница PHP, которая извлекает данные из базы данных MYSQL и генерирует содержимое HTML на основе строк, возвращаемых из базы данных.
Я добавляю новую строку в базу данных по нажатию кнопки, используя AJAX, Jquery и PHP. После добавления новой строки я использую window.location.reload(true); перезагрузить страницу. Но элементы HTML, соответствующие новой строке, не отображаются, когда я нажимаю кнопку. Тем не менее, если я вручную обновлю страницу с помощью F5, будет показано добавленное содержимое.
Кто-нибудь знает, почему это могло произойти?
Ниже приведена функция, которую я вызываю по нажатию кнопки. На странице увеличенияCount.php обновляется база данных для увеличения количества актеров. Но элементы HTML, соответствующие новому количеству, не отображаются, пока я не обновлю страницу, используя F5.
Решение
Проблема в том, что вы смешиваете ajax с полной перезагрузкой страницы.
$.ajax Вызов по умолчанию является асинхронным (первый a из ajax …). Поэтому он отправляет запрос increasepostcount.php а затем немедленно перезагрузить страницу — не дожидаясь increasepostcount.php обработать запрос. К тому времени, когда вы вручную обновите страницу, increasepostcount.php завершит обработку вызова ajax, поэтому его результат будет отражен на странице.
Если вы используете ajax, вы не должны использовать перезагрузку страницы. Используйте javascript для обновления той части страницы, где отображаются эти записи, на основе результатов, возвращаемых вызовом ajax.
JavaScript: Window Location
Объект Window.location предоставляет информацию о текущем адресе страницы (URL), позволяет реализовать обновление (перезагрузку) страницы, перенаправление браузера на другой URL и многое другое.
Объект Window.location содержит следующие свойства и методы.
Window Location Href
Данный метод вернёт href (URL) текущей страницы (полный путь). Можно использовать без префикса href , просто location .
Window Location Hostname
Свойство window.location.hostname возвращает имя хоста текущей страницы (без порта).
Window Location Pathname
Свойство window.location.pathname возвращает путь до текущей страницы (без домена).
Window Location Protocol
Свойство window.location.protocol возвращает веб-протокол данной страницы (http или https).
Window Location Port
Свойство window.location.port возвращает номер порта данного хоста.
Некоторые браузеры не будут отображать номера портов по умолчанию (80 для http и 443 для https).
Window Location Search
Свойство window.location.search содержит GET параметры — с добавлением в начале ? . Обычно называют «строка запроса» /search?q=text . Несколько параметров: ?id=18&title=phone .
Т.о. мы изменяем параметры, которые хотим передать на сервер.
Window Location Hash
Свойство window.location.hash содержит id фрагмента, включая символ # (hash).
Window Location Assign()
Метод window.location.assign() загружает новую страницу.
Window Location Reload()
Метод window.location.reload() позволяет перезагрузить страницу (текущий URL).
Перезагрузка страницы с использованием кэша.
Перезагрузка текущей страницы без использования кэша, она будет заново загружена с сервера.
Window Location Replace()
Метод window.location.replace() позволяет перенаправить подобно HTTP-редиректу. Также текущая страница не будет сохранена в объекте History (нельзя будет использовать кнопку «Назад»).
Пример перенаправления через 2 секунды на страницу «Благодарности».
Window Location toString()
Пример использования метода toString() :
Пример
Возьмем текущую страницу в качестве примера URL, к которому мы добавим все возможные параметры:
Это разделяется следующим образом:
[https:] // [only-to-top.ru] : [443] [/blog/coding/2019-11-30-javascript-window-location.html] [?name=value] [#hash]
Свойства объекта Window.location касательно данного примера:
[protocol] [hostname] [port] [pathname] [search] [hash]
Надеюсь, вам понравилась данная информация. Если вам интересна тема web-разработки, то можете следить за выходом новых статей в Telegram.
Форум
Справочник
window.location
Получает/устанавливает URL окна и его компоненты
Описание, примеры
Значением этого свойства является объект типа Location .
Объект Location
Метод toString этого объекта возвращает URL, а различные свойства позволяют получить/установить отдельные компоненты адреса.
Для некоторых строковых операций необходимо явно преобразовать Location к строке:
Свойства объекта Location
Все следующие свойства являются строками.
Колонка «Пример» содержит их значения для URL:
- http://www.google.com:80/search?q=javascript#test
Свойство | Описание | Пример |
hash | часть URL, которая идет после символа решетки ‘#’, включая символ ‘#’ | #test |
host | хост и порт | www.google.com:80 |
href | весь URL | http://www.google.com:80/search?q=javascript#test |
hostname | хост (без порта) | www.google.com |
pathname | строка пути (относительно хоста) | /search |
port | номер порта | 80 |
protocol | протокол | http: |
search | часть адреса после символа ?, включая символ ? | ?q=javascript |
В Firefox есть баг: если hash -компонент адреса содержит закодированные (см. encodeURIComponent) символы, свойство hash возвращает раскодированный компонент. Например, вместо %20 будет пробел и т.п. Другие браузеры ведут себя корректно и не раскодируют hash .
Методы объекта Location
При изменении любых свойств window.location , кроме hash , документ будет перезагружен, как если бы для модифицированного url был вызван метод window.location.assign() .
При вызове sendData(‘My Data’) на сервер отправится строка
с параметрами «?My%20Data».
Как можно получить параметр из URl? Только в ручную разбирая search
А еще пробежаться по массиву, разбить его элементы по ‘=’ и составить хеш. Будет вообще замечательно.
кстати объект document тоже содержит в себе ссылку на объект location.
Кто знает как запретить чужому сайту из фрейма трогать location.
Если кто не понял, в чем дело, попробуйте Яндекс во фрейм положить.
vkontakte также закрыт..
вот чтобы не воровали контент чужих страниц клиентом — так и сделано
Вконтакте hash находиться в объекте flashVars.
Существует ли простой способ разбора параметров location.search ?
То есть функция, я ей — параметр, она мне — его значение.
Если стандартной такой функции не существует, то наверняка уже кто-то писал такую функцию. Чего мне велосипед то изобретать? Поделитесь, пожалуйста.
Запускаем функцию (например: «window.onLoad = parseGET;») — получаем массив get[_параметр_]=_значение_.
Только вот ты забыл, что в JS нету ассоциативных массивов и вот эта строка
get[tmp2[0]] = tmp2[1];
не имеет смысла до тех пор, пока она
get = new Array();
Рабочая версия (возвращает объект)
По секрету. Ассоциативные массивы в JS есть. И, что доставляет, это — одная из важнейших его частей.
Кхм, и называется оно «Объект»? ) В js нет ассоциативного массива, по крайней мере в таком виде, чтобы инстанс некоего типа имел возможность присваивания своим именованным свойствам неких значений и при этом сохранял возможности «массива», которые являются привычными и устоявшимися (конкатенация массивов, сортировка по ключу/значению и прочее). Объект — хеш — назвать ассоциативным массивом ввиду отсутствия нативных «массивных» возможностей можно с натяжкой. Принимая во внимание тот факт, что в спеке ECMA-262 ни разу не встречается словосочетание «associative array» или слово «hash». Это народные обзывательства, реально же в js ассоциативных массивов нет в должном привычном объёме.
а как cделать так,чтобы location.href=cсылка , загружало ссылку в определенный фрейм (то есть target)?
как в a.js понять какой query ему отдали, ибо location.search — содержит есессно query основной страницы, и не подходит?
Добавь скрипту ID, потом через document.getElementById получи объект..
Преобразуй строку в объект и работай дальше..
Для примера создана вторая функция — print_r, чтобы проверит результат..
ну а как содержимое скрипта получить ? плачу 5баксов кто покажет . jipik(a)bk.ru
имется виду внешний скрипт
Испробовал вот такой «лобовой» вариант
так вот myhash.length возвращает 0 и при отсутствии хэша, и при варианте site.com/# и при варианте site.com/page.html# — и НЕ ЧИСТИТ этот чертов завершающий #
результат аналогичный: site.com/# решетка гордо в URL
Решением оказался вот такой ход:
Теперь завершающий пустой хэш остается только, если вызывается та же самая страница, то есть без перехода на новый URL (например, на ссылке «Домой» остался такой аппендикс).
Для простого получения адреса текущей, обобразится на экране, стрницы —
document.write(location ); // получить адрес текущей страницы
У меня с некоторых компов значение document.location.hostname == null.
Это при первой загрузке страницы, если страницу обновить, то встает нормальное значение, но скрипт-то отрабатывается в первый раз.
Из-за чего такое может быть?
Здравствуйте. Помогите, пожалуйста. Никак не могу сообразить. Мне надо, чтобы по нажатию кнопки шел просчитывались данные и шел переход на другую страницу. У меня переходит на другую страницу, но берет устаревшую из кэша, для просмотра обновленных данных приходится перезагружать страницу вручную. А можно как-нибудь переходить сразу на обновленную страницу или сделать последовательно: сначала переход на другую страницу, а потом её автоматическое обновление?
Выше спрашивали: » У меня переходит на другую страницу, но берет устаревшую из кэша, для просмотра обновленных данных приходится перезагружать страницу вручную. А можно как-нибудь переходить сразу на обновленную страницу или сделать последовательно: сначала переход на другую страницу, а потом её автоматическое обновление?»
mario games
Великие посты! Я на самом деле готовлюсь через эту информацию, очень полезен мой друг. happy wheels
Всем привет.
У меня есть аудио поток m3u и когда переключаешься с wifi на 3g он прекращается и выдает ошибку:
Failed to load resource: net::ERR_NETWORK_CHANGED
Можно ли как то скриптом чекать эту ошибку и если она есть то перезагружать не страницу а область () ?
Link exchange is nothing else however it is simply placing the other person’s website pokemon masters cheats link on your page at proper place and other person will also do same in favor of you.
Живопись фотографии бесплатно, цветные шаблоны страниц и пустые картинки включают в себя большую коллекцию для раскрашивания. Надежные и высококачественные цветовые шаблоны
location.reload(true) is deprecated
I know that it is not ideal to reload an Angular Single Page Application. However there is a place that I need to reload the full application.
TSLint says that reload is deprecated.
Is there any alternative for this?
8 Answers 8
You can use location.reload() without the forceReload flag. This is just deprecated because it is not in the spec: https://www.w3.org/TR/html50/browsers.html#dom-location-reload
If you look at interface definition for Location you will see the following:
Using location.reload() is the valid syntax. It is only the reload with forcedReload which is deprecated.
In your case changing location.reload(true) to location.reload() to resolve your issue.
Since the forceReload parameter is deprecated, as 3 people already mentioned, it is also ignored by some browsers already.
Using only location.reload(); is not a solution if you want to perform a force-reload (as done with e.g. Ctrl + F5 ) in order to reload all resources from the server and not from the browser cache.
The solution to this issue is, to execute a POST request to the current location as this always makes the browser to reload everything.
location.reload() is only executing a GET request.
So I came to the workaround to place an empty form on the Angular app with method=»POST» and action=»https://example.org/» and then submitting that form from code-behind when wanted.
I guess this can be also done in a more non-hacky way. I am investigating. (HttpClient, maybe?)
javascript — window.location.reload (true) не правильно перезагружает страницу
У меня есть страница PHP, которая извлекает данные из базы данных MYSQL и генерирует содержимое HTML на основе строк, возвращаемых из базы данных.
Я добавляю новую строку в базу данных по нажатию кнопки, используя AJAX, Jquery и PHP. После добавления новой строки я использую window.location.reload(true); перезагрузить страницу. Но элементы HTML, соответствующие новой строке, не отображаются, когда я нажимаю кнопку. Тем не менее, если я вручную обновлю страницу с помощью F5, будет показано добавленное содержимое.
Кто-нибудь знает, почему это могло произойти?
Ниже приведена функция, которую я вызываю по нажатию кнопки. На странице увеличенияCount.php обновляется база данных для увеличения количества актеров. Но элементы HTML, соответствующие новому количеству, не отображаются, пока я не обновлю страницу, используя F5.
Решение
Проблема в том, что вы смешиваете ajax с полной перезагрузкой страницы.
$.ajax Вызов по умолчанию является асинхронным (первый a из ajax …). Поэтому он отправляет запрос increasepostcount.php а затем немедленно перезагрузить страницу — не дожидаясь increasepostcount.php обработать запрос. К тому времени, когда вы вручную обновите страницу, increasepostcount.php завершит обработку вызова ajax, поэтому его результат будет отражен на странице.
Если вы используете ajax, вы не должны использовать перезагрузку страницы. Используйте javascript для обновления той части страницы, где отображаются эти записи, на основе результатов, возвращаемых вызовом ajax.