2010-05-07 6 views
4

Все мои исследования пока показывают, что это невозможно сделать, но я надеюсь, что у кого-то есть какие-то хитрые идеи.Создайте и загрузите текстовый файл в javascript

У меня есть форма на веб-сайте, которая позволяет пользователям загружать большое количество URL-адресов для добавления в список на сервере. На каждом URL-адресе довольно много обработки на стороне сервера, поэтому, чтобы избежать тайм-аутов и показывать прогресс, я реализовал загрузку с помощью jQuery для отправки URL-адресов по одному с помощью ajax.

Все это прекрасно работает. Тем не менее, часть обработки по каждому URL-адресу дедуплицирует его по отношению к полному списку. Ajax-вызов возвращает статус, указывающий либо успешную загрузку, либо отказ от дублирования. По мере продвижения загрузки я сообщаю пользователю, сколько URL-адресов было отклонено как дубликаты (наряду с общим прогрессом и ETA).

Проблема заключается в том, как предоставить пользователю полный список дублированных URL-адресов. Я сохранил их в массиве в jQuery и хотел бы, чтобы пользователь мог нажать ссылку на форму для загрузки текстового файла, содержащего эти URL-адреса. Возможно ли это только при использовании клиентской обработки?

Обработка на стороне сервера в основном обрабатывает только одно ключевое слово за раз. Я бы предпочел не хранить дубликаты в таблице базы данных с каким-то ключом сеанса, который отправляется с каждым вызовом ajax, а затем используется в конце для генерации текстового файла на стороне сервера (а затем очищается некоторые спустя некоторое время). Я вижу, как это сделать, но это кажется очень неуклюжим и немного 20-го века.

ответ

3

Я еще не использовал его, но Downloadify был построен именно для этой цели.

Download - это небольшая библиотека JavaScript + Flash, которая позволяет генерировать и сохранять файлы «на лету» в браузере без взаимодействия с сервером.

Это было создано: Doug Neiner, которое также активно работает над переполнением стека.

Для работы требуется Flash 10.

+0

Это отлично работает - спасибо за предложение и спасибо Дагу! –

+0

Doug, похоже, выбил свой сайт с тех пор, как вы разместили это ... Я не вижу никакой JS-библиотеки на этом сайте. – mpen

+0

@Mark Я знаю Doug немного, я не вижу, как он это делает ... Может быть, что-то пошло не так с регистрацией. Я спрошу его, когда я поговорю с ним. –

Смежные вопросы