2010-09-01 2 views
1

Это Followup вопрос к одному hereзапросы Cross Domain с помощью JQuery

Вот вкратце то, что я пытаюсь сделать. Файловый сервер создает текстовый файл, указывающий на конец процесса. На веб-страницы на веб-сервере, я петля каждые х секунд и сделать AJAX запрос, чтобы выяснить, если тестовый файл существует (Ajax запрос на http://fileserver/files/UserFile.txt)

Я попытался следующие подходы до сих пор:

  • Запустите веб-метод со стороны клиента, который создает объект HttpContext, чтобы проверить, существует ли текстовый файл. Но это слишком сложно на сервере, и я начал получать все исключения в средстве просмотра событий.
  • YQL отлично работает, но, к сожалению, он слишком медленный. Пользователь ждет по крайней мере в два раза больше времени.

Я ищу решение, которое не связано с сервером. Каким-то образом я хотел бы использовать JQuery для проверки наличия текстового файла на файловом сервере.

Любые мысли?

ответ

1

Вы должны иметь возможность использовать JSONP и JQuery.ajax() для выполнения работы по перекрестному запросу. Играйте с атрибутами jsonp и jsonpCallback. Кроме того, вы можете использовать JQuery.getJSON().

+0

@justkt - AFAIK jsonp требует серверную страницу (aspx.cs) на файловом сервере, который делает запрос и возвращает строку json. Мой файловый сервер не поддерживает ASP.NET. – Nick

+1

Что это значит? JSONP не требует такой вещи. Все, что вам нужно, это помочь вам изменить результаты своей серверной части, чтобы вы вернули jsonpCallback ({yourData}), а не {yourData}. – Ollie2893

+0

@ user102533 - как @ Ollie2893 говорит, вы можете обслуживать JSONP всеми возможными способами. До тех пор, пока вы вернете правильный синтаксис JSONP (как указано в моей ссылке), он будет работать.Наличие или отсутствие файла должно быть довольно простым - просто отправьте что-то, что запускает скрипт на сервере, чтобы выполнить поиск в этом файле и вернуть true или false в качестве ваших данных в формате JSON. – justkt

0

Обслуживание одного файла из файловой системы - это самая простая операция, которую может выполнять веб-сервер. Если это уже слишком много, тогда все другие решения будут хуже. Узнайте, почему сервер занимает так много времени, чтобы обслуживать простой файл и исправить это.

Примечание: Я предполагаю, что файл невелик, так как вы говорите «тестовый файл». Если это большой файл, сервер фактически отправит его клиенту, которому потребуется много ресурсов.

Что вы можете попробовать, это добавить страницу ASP на веб-сайт, на котором выполняется код на сервере, который проверяет, есть ли файл, и просто возвращает крошечный фрагмент HTML, который вы можете добавить на страницу с помощью jQuery.load().

+0

YQL занимает много времени, так как моему коду нужно поговорить с третьим лицом, которое, в свою очередь, добавляет дополнительные служебные данные. Выполнение HttpWebRequests на сервере занимает много времени, потому что: 1) он делает это на сервере и 2) я должен зацикливаться каждые несколько секунд для каждого пользователя, и это добавляет нагрузку на сервер – Nick

0

Я могу быть в нескольких милях от базы, но ... не могли бы вы создать ОДИН асинхронный (!) Запрос клиента Ajax с тайм-аутом HUMONGOUS. Огонь его и жди. Вы будете ссылаться на какой-либо серверный скрипт, который проверяет все так часто, в цикле на сервере (используя сон между ними), существует ли файл. И не отвечая на запрос Ajax, пока файл не покажет. Затем скрипт сервера отвечает и завершает работу.

EDIT: В зависимости от используемой архитектуры сценариев на стороне сервера вы даже можете получить поддержку ОС. Возможно, вы сможете спать при изменении статуса в каталоге ...

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

  • Нет связанных вопросов^_^