Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
C#, MVC 2.0 Javascript'ом (window.open) на странице открываю новую вкладку по которой обработчик на сервере формирует word'овский файл. Все работает, но когда я внутри обработчика реализовал аудит, оказалось, что часто обработчик вызывается 2 (а иногда и 3) раза при одном открытии вкладки. Т.е., насколько я вник в суть процесса: браузер (в основном ie, но, возможно, пользователи используют и другие) при открытии вкладки загружает файл (в память, наверное) и выдает пользователю вопрос - загрузить файл или открыть, и в дальнейшем, при выборе пользователем одного из вариантов, возможно повторно отправляет запрос на загрузку файла. Почему изредка получается 3 обращения - тут я совсем не врублюсь. Т.к. процесс формирования файла на сервере довольно ресурсоемкий, хотелось бы исключить повторные запросы. Как это можно сделать? Может нужно каким-то образом выставить нужные заголовки ответа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 17:43 |
|
||
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
publexus, ... гуголь рекомендует убрать из заголовков (Content-Disposition, "attachment"), если оно там присутствует, конечно ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 18:13 |
|
||
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
carrotik, Thx. Убрал. Двойные запросы практически исчезли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2013, 09:46 |
|
||
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
publexus, Но появилась другая проблема: если загружаемый файл - текстовый, то браузер не предлагает сохранить его, а выводит в своем окне. А нужно именно предлагать сохранение на диск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 10:29 |
|
||
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
publexus, ... а ContentType=application/octet-stream не помогает? .. вообще говоря, я выше совет дал именно из гугля, в моих проектиках "Content-Disposition", "attachment" не вызывает двойной загрузки ... почему так - не знаю ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 12:39 |
|
||
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
carrotik, У меня выставлен ContentType=application/octet-stream, а также Content-Transfer-Encoding=binary. Все равно, если двоичные данные, то выдает сохранение файла, если текстовые, то отображает как простой текст в окне браузера. Кстати, как показало время, двойные запросы все равно присутствуют, хотя, вроде-бы, и в меньшем количестве. Может проблема в чем-то другом? Браузер используется через клиента 2X, может тут какая-нибудь загвоздка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 13:24 |
|
||
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
publexus, .. а грузите файл через Response.WriteFile() или как ..? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 13:32 |
|
||
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
carrotik, В методе контроллера возвращаю переопределенный класс ActionResult в котором в методе ExecuteResult нем указываю все необходимые заголовки и записываю данные в ControllerContext.HttpContext.Response.OutputStream. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 14:30 |
|
||
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
Вот кусок лога IIS: Код: c# 1. 2. 3. 4. Видно, что первый запрос выдает почти все данные, но завершается с кодом 995 (The I/O operation has been aborted because of either a thread exit or an application request). Поток разрывает, видимо, браузер? Это можно исправить настройкой браузера? Клиентов несколько и находятся они на разных компах, зависимости одиночного или двойного запроса от клиента я пока не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 16:46 |
|
||
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
publexus, ... может, это к делу и не относится, но я так понял, у вас файл сначала создается, а потом отдается на загрузку? .. возможно, стоит попробовать поставить System.Thread.Sleep на пару-тройку секунд после создания файла, и только потом отдавать его в поток ... Мне как-то подобная мера помогла (хотя это считается некрасивым решением) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 16:56 |
|
||
|
Браузер отправляет несколько запросов на загрузку файла
|
|||
|---|---|---|---|
|
#18+
Много где использую отдачу файлов серверным обработчиком, ради интереса попробовал потестить во всех современных браузерах, нигде не удалось воспроизвести вышеописанной проблемы, Content-Disposition:attachment присутствует. Подозрение либо сервером не те респонс хедеры отдаются, либо браузер какой-нить IE6,7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2013, 04:10 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38198701&tid=1358618]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 410ms |

| 0 / 0 |
