jQuery AJAX получить скрипт PHP, отображать содержимое при загрузке - PullRequest
1 голос
/ 13 июля 2011

Мне нужно взаимодействовать с API Facebook для этого проекта, который, на мой взгляд, немного медленнее, чем я ожидал.Из-за этого мне приходится делать что-то, что я нахожу довольно неортодоксальным: мне нужно загрузить контент, который Facebook предоставляет обратно в моем PHP-скрипте, как он загружается из Facebook.Традиционно я загружал контент в тег div в случае успеха скрипта;Тем не менее, мне нужно загрузить контент, как он выглядит.Было бы совершенно неприемлемо, чтобы клиент почти минуту ждал, пока Facebook загрузит альбом и все соответствующие комментарии, прежде чем что-либо отобразить.Надеюсь, я не расплывчатый;Я здесь не для того, чтобы просить код, но я перепробовал практически все, что мог придумать.Я упускаю эту простую концепцию? ... Мне кажется, что это проще, чем я ее создаю.

Я использую jQuery AJAX, поскольку считаю, что с этим проще всего работать.Любые комментарии и / или помощь будет принята с благодарностью.

Ответы [ 3 ]

2 голосов
/ 13 июля 2011

Корень вашей проблемы в том, что методы jJuery AJAX подключаются к событию onreadystatechange и переменной readyState.readyState устанавливается только на 4, когда файл полностью передан, и поэтому ваши события будут срабатывать только после завершения загрузки.

Доступ к данным по мере их отправки не в разных семействах браузеров.Делать это таким образом будет невероятно сложно и отнимает много времени.Я бы рекомендовал сначала сделать это немного по-другому, возможно, предварительно загрузив соответствующие данные Facebook на вашем собственном сервере.Это может быть скомпилировано в статическую страницу, и это, в свою очередь, может быть очень быстро предоставлено вашим пользователям.

Чтобы быстрее доставлять данные своим пользователям, вам также нужно работать вне коробки.Здесь обсуждается плагин jQuery ( Работает ли PHP-флеш с jQuerys ajax? ), который делает методы jQuery ajax совместимыми с потоковым выводом.Удачи.

0 голосов
/ 13 июля 2011

Вместо того, чтобы помещать любой код в обратный вызов, просто поместите его после обратного вызова

например

$("#div").load("facebook...", function() {
   //do stuff
});
//put the stuff you want to load at the same time, here
0 голосов
/ 13 июля 2011

Кажется, проблема связана с тем, что вы получаете слишком много данных одновременно.Я предполагаю, что вы говорите о получении контента из ajax, поскольку он распечатывается немедленно, но возможно, что этот контент создается и отправляется сразу, и у вас не будет доступа к данным до тех пор, пока весь анализ не будет завершен.Если это не так, загляните в COMET.Если это правда, решение состоит в том, чтобы установить ограничение на количество данных, которые вы извлекаете одновременно, чтобы сократить время анализа.Например, получить 5 фотографий в каждом запросе.Добавьте эти 5 фотографий в DOM во время получения следующих 5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...