Генерация и загрузка текстового файла в JavaScript
Все мои исследования показывают, что это невозможно, но я надеюсь, что у кого-то здесь есть некоторые хитрые идеи.
У меня есть форма на веб-сайте, которая позволяет пользователям массово загружать множество URL-адресов для добавления в список на сервере. Для каждого URL-адреса выполняется довольно много серверной обработки, поэтому, чтобы избежать тайм-аутов и отображения прогресса, я реализовал загрузку с использованием jQuery, чтобы отправлять URL-адреса по одному с помощью ajax.
Это все работает хорошо. Однако часть обработки каждого URL-адреса дедуплицирует его по всему списку. Вызов ajax возвращает статус, указывающий либо на успешную загрузку, либо на отклонение из-за дублирования. По мере загрузки я сообщаю пользователю, сколько URL-адресов было отклонено как дубликаты (наряду с общим прогрессом и ETA).
Теперь проблема в том, как предоставить пользователю полный список неудачных дубликатов URL. Я сохранил их в массиве в моем jQuery и хотел бы, чтобы пользователь мог щелкнуть ссылку в форме, чтобы загрузить текстовый файл, содержащий эти URL-адреса. Возможно ли это только с помощью обработки на стороне клиента?
Обработка на стороне сервера в основном обрабатывает одно ключевое слово за раз. Я бы предпочел не хранить дубликаты в таблице базы данных с каким-то ключом сеанса, который отправляется при каждом вызове ajax, а затем используется в конце для генерации текстового файла на стороне сервера (а затем очищается время спустя). Я могу видеть, как это сделать, но это кажется очень неуклюжим и немного 20-го века.
1 ответ
Я еще не использовал его сам, но я думаю, что Downloadify был создан именно для этой цели.
Downloadify - это небольшая библиотека JavaScript + Flash, которая позволяет создавать и сохранять файлы на лету, в браузере, без взаимодействия с сервером.
Он был создан Doug Neiner, который также довольно активен в Stack Overflow.
Для работы нужна Flash 10.