Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Задача такая. Есть форма для загрузки файлов и кнопка "submit". Без участия скриптов при нажатии на кнопку файлы отправляются на сервер (вместе с данными прочих полей) и загружается страница, указанная в атрибуте "action" формы. Всё как положено. Задача такая: 1) С помощью скриптов вклиниться в процесс отправки файлов и до момента загрузки страницы, указанной в атрибуте "action", отображать индикатор загрузки файлов 2) Всё прочее поведение, кроме индикатора, должно быть точно таким же, как и без участия скриптов Т.е. в итоге должна быть загружена та страница, которая указана в атрибуте "action" Очевидно, что задачу не решить без ajax-запроса Вопрос в том, как скриптами в текущее окно загрузить новую страницу после получения ответа от сервера ? Чтобы выглядело это так, как будто запрос был обычный. Возможные варианты: 1) Редирект на страницу, указанную в атрибуте "action", делать нельзя, т.к. придётся повторно отправлять файлы + сервер будет повторно обрабатывать тот же запрос 2) Просто заменить html-код текущей страницы на тот, что получен от сервера, тоже нельзя, т.к. URL тоже должен измениться 3) Заменить html-код текущей страницы на тот, что получен от сервера + изменить location. В этом случае мы получим полностью идентичную ситуация, что и без участия скриптов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 18:57 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Cyrax_02Задача такая. Есть форма для загрузки файлов и кнопка "submit"... Остальное можно не читать. Как устроено, так и устроено. В этом контексте "скрипты" - вообще ни при чём. Вопрос таки - а что нужно-то? Только не предлагайте свои рецепты, а задайте вопрос что хотите получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 19:38 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
авторВопрос таки - а что нужно-то? Добавить индикатор загрузки файлов скриптами. Всё остальное должно остаться без изменений Чтобы не ждать неопределённое количество времени (пока передаются файлы), а видеть индикатор загрузки Индикатор добавить - не проблема, ajax-запрос - не проблема. Проблема в том, что делать, когда будет получен ответ от сервера ? Для пользователя всё должно выглядеть так, как будто загрузилась новая страница с ответом от сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 19:53 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Cyrax_02...Индикатор добавить - не проблема ajax-запрос - не проблема.... Индикатор добавить - можно фейковый (не проблемв), а ответ от сервера - калбек называется (тоже не проблема). А в чём проблема? Чё-то подхачить хочется? Из того, что Вы написали нифига не понятно, ну да, стандартное поведение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 09:57 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
авторА в чём проблема? Что делать, когда будет получен ответ от сервера ? Для пользователя всё должно выглядеть так, как будто загрузилась новая страница с ответом от сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 19:16 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Cyrax_02Проблема в том, что делать, когда будет получен ответ от сервера ? Почему бы просто не сменить document.location? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 21:06 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
ShSergeИндикатор добавить - можно фейковый А можно и не фейковый: New Tricks in XMLHttpRequest2 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 21:13 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
авторПочему бы просто не сменить document.location? На сервер будет отправлен повторный запрос, причём без файлов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2017, 00:43 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Cyrax_02авторПочему бы просто не сменить document.location? На сервер будет отправлен повторный запрос, причём без файлов И что? Это стандартная работа по протоколу HTTP, когда в ответ на POST приходит Location ресурса и мы к нему переходим. Замечание "причём без файлов" не понятно. Какие могут быть файлы в GET запросе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2017, 10:47 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Ну или в ответ прилетает редирект и браузер его выполняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2017, 10:50 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
авторИ что? Это стандартная работа по протоколу HTTP, когда в ответ на POST приходит Location ресурса и мы к нему переходим. Замечание "причём без файлов" не понятно. Какие могут быть файлы в GET запросе? Т.е. после фоновой загрузки файлов вы предлагаете показывать клиенту ту страницу, которую генерирует сервер при отсутствии загружаемых файлов ? Вроде как должна отображаться та страница, которую сервер генерирует после загрузки выбранных пользователем файлов. И без повторных запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2017, 19:04 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Cyrax_02авторИ что? Это стандартная работа по протоколу HTTP, когда в ответ на POST приходит Location ресурса и мы к нему переходим. Замечание "причём без файлов" не понятно. Какие могут быть файлы в GET запросе? Т.е. после фоновой загрузки файлов вы предлагаете показывать клиенту ту страницу, которую генерирует сервер при отсутствии загружаемых файлов ? Вроде как должна отображаться та страница, которую сервер генерирует после загрузки выбранных пользователем файлов. И без повторных запросов. Нет, я как раз таки предлагаю перейти на страницу, что должна быть показана после загрузки выбранных файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2017, 20:29 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
А вот с какой целью Вы передаете Location страницы, что генерирует сервер при отсутствии загружаемых файлов, мне не понятно. Может если делать по стандарту, то и трудностей меньше будет? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2017, 20:34 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
авторНет, я как раз таки предлагаю перейти на страницу, что должна быть показана после загрузки выбранных файлов. О том и речь. Эту страницу имеет смысл показывать только одновременно с отправкой файлов, т.к. эта страница содержит результаты загрузки файлов. А изменив Location, мы выполним GET-запрос без отправки файлов. Вопрос: зачем тогда менять Location в данном случае ? авторА вот с какой целью Вы передаете Location страницы, что генерирует сервер при отсутствии загружаемых файлов, мне не понятно.Я где-то сказал, что передаю клиенту Location ??? Это же вы утверждаете, что POST-запрос выполняется в 2 этапа - сначала отправляются файлы, в ответ сервер передаёт клиенту Location, клиент отправляет ещё один - GET - запрос на этот Location и сервер уже отдаёт страницу с результатами загрузки файлов. И это ваши слова: автор И что? Это стандартная работа по протоколу HTTP, когда в ответ на POST приходит Location ресурса и мы к нему переходим. Насколько я представляю, POST-запросы выполняются единым атомарным запросом и файлы передаются вместе с этим запросом. Безо всяких возвратных Location и без повторных GET-запросов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2017, 14:31 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Одним словом, анекдот " Тук-тук. Сиди, я сам открою... " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2017, 14:32 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Cyrax_02, послушайте, ну хотя бы википедию можно было уже прочитать: https://en.wikipedia.org/wiki/HTTP_location
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2017, 15:29 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Другими словами: принято создавать новые ресурсы на сервере POST запросом, а для новых ресурсов принято возвращать их Location на сервере, чтобы сторона, что запостила данные, была в курсе, где их теперь спросить у сервера. Конечно Вы вольны реализовать любое другое поведение :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2017, 15:32 |
|
||
|
ajax-запрос с последующей заменой текущего документа на полученный html
|
|||
|---|---|---|---|
|
#18+
Спецификацию также можете почитать: https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5 9.5 POSTIf a resource has been created on the origin server, the response SHOULD be 201 (Created) and contain an entity which describes the status of the request and refers to the new resource, and a Location header (see section 14.30 ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2017, 15:38 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39456442&tid=1444612]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 287ms |

| 0 / 0 |
