Я кодирую обратную совместимость процесса загрузки файла для AJAX. В HTML5 есть событие xhr.upload.progress; это было бы альтернативой для браузеров не-XHR2. Я использую расширение APC для отслеживания прогресса.
Теперь мой вопрос: каков наилучший метод для запуска пользовательского события xhr.upload.progress? Я планирую использовать HTML5 SSE, но если они не поддерживаются, я не уверен, к чему я должен прибегнуть.
- Опрос: непрерывные запросы AJAX о прогрессе каждые пару секунд
- Длинный опрос: очевидно, лучше, чем опрос? тем не менее, я слышал, что они приводят к зависанию сервера, потому что на самом деле запросы не обрабатываются асинхронно на сервере. Итак, я предполагаю, что мне придется реализовать что-то вроде NodeJS, чтобы избежать этого. Если бы проблема замораживания была только что завышена / чрезмерно драматизирована, я бы, вероятно, пошел с длинным опросом.
- Бесконечный iframe: iframe кажется хорошей идеей, но я уверен, что с этим есть проблемы. Замораживает ли он сервер, как при длинном опросе?
Edit:
Я думаю, вот мои основные проблемы. Какова масштабируемость этих методов AJAX? Может ли EventSource SSE заморозить память сервера? Если да, то стоит ли мне использовать что-то вроде NodeJS или ScaleStack? И действительно ли накладные расходы сервера действительно имеют значение с панелью загрузки?