Facebook делает свои AJAX-звонки через iframe? - PullRequest
0 голосов
/ 24 марта 2011

Я хочу внедрить AJAX как Facebook, чтобы мои сайты тоже могли работать очень быстро.После нескольких недель исследований, а также знания о bigPipe (который не является ajax).

, поэтому осталось только то, как они выполняют другие запросы, такие как переход на страницу / профиль, я открыл firebug и просто проверял вещитам, что я получу, если я нажму на разные профили.Но проблема в том, что firebug не записывает ни один такой запрос, но страница все равно загружается с AJAX и также меняет HTML, firebug показывает изменения в html.

Так что мне интересно, используют ли ониiframe, чтобы заблокировать firebug, чтобы увидеть запрос или что?Потому что я хочу знать, сколько данных они получают по каждому запросу.Это полная страница или только часть страницы, потому что макет страницы также меняется, в зависимости от того, какая это страница (например, группы, страница, профиль ...)благодарен, если профессионал дает некоторую обратную связь по этому поводу, потому что я не могу найти его где-либо в течение нескольких недель.

Ответы [ 6 ]

2 голосов
/ 01 апреля 2011

Причина, по которой они используют iframe, обычно его безопасность. iframes похожи на новые вкладки, между вашей страницей и страницей iframe нет связи. У iframe есть свои собственные файлы cookie и сеанс, поэтому вам действительно нужно думать о нем, как о другом окне, а не как о части вашей собственной страницы (за исключением очевидного факта, что выходные данные отображаются на вашей странице).

Тем не менее, режим разработчика в chrome показывает связь с и в iframe.

1 голос
/ 30 марта 2011

Когда я нажимаю на профиль пользователя на Facebook, то в Firebug я ясно вижу, как происходит запрос данных и как меняется содержимое div.Итак, о чем вопрос?

После нажатия на какой-либо профиль пользователя Facebook выполняет следующий запрос GET:

    http://www.facebook.com/ajax/hovercard/user.php?id=100000655044XXX&__a=1

Ответ на этот запрос представляет собой сложные данные JS, которые содержат всю необходимую информациюпостроить новую страницу.Существует множество друзей профиля (с именами, ссылками на миниатюры аватаров и т. Д.), Массив последних записей профиля (опять же, с URL-адресами миниатюр, аннотациями и т.как скрытие кода или запутывание.=)

0 голосов
/ 05 января 2015

Если вы знаете о bigPipe, вы сможете понять это, Когда вы прочитали о большой трубе, их ответ выглядит так: -

<script type="text/javascript">  bigpipe.onPageArrive({ 'css' : '', '__html' : '  ' }); </script>

Так что, если они ajax, то они не смогут использовать bigpipe, то есть, если они используют ajax и один сервер, они сбрасывают буфер, на клиенте это не действует, ajax oncomplete будет вызывать только после получения полных данных и соединения Другими словами, они не смогут использовать свою одну из лучших техник скорости страницы,

но что, если они используют iframe для ajax, это важно, они могут использовать свою большую трубку в iframe, и сервер отправит данные следующим образом: -

<script type="text/javascript">   parent.bigpipe.onPageArrive({ 'some' : 'some' });

так что сервер может очистить буфер, и как только буфер очистится, браузер получит это, что было невозможно в случае ajax.

Важно: -

Они используют iframe только при изменении URL-адреса страницы, то есть, когда необходимо загрузить новую страницу, содержащую страницы, для другого запроса, например всплывающего окна или уведомлений и т. Д., Они просто отправляют запрос ajax.

Вся информация неофициальна, на самом деле я занимался этим, поэтому обнаружил, (Я не являюсь носителем английского языка, извините за орфографические и грамматические ошибки!)

0 голосов
/ 02 апреля 2011

Я не знаю, почему Facebook использует IFRAME для асинхронной загрузки данных, но я полагаю, что для этого нет особой причины. Мы также использовали IFRAME, но теперь переключились на XMLHttpRequest для наших проектов, потому что он более гибкий. Возможно, метод IFRAME лучше работает в (намного) старых браузерах, но даже IE6 прекрасно поддерживает XMLHttpRequest.

В любом случае, я уверен, что при использовании IFRAME преимущества в производительности нет. Если вам нужна быстрая асинхронная загрузка данных для динамического обновления вашей страницы, используйте XMLHttpRequest, поскольку его поддерживают любые современные браузеры, и он работает так же быстро, как HTTP.

0 голосов
/ 24 марта 2011

Глядя на фейсбук через инспектор Google Chrome, они используют ajax, чтобы запросить у файлов возвращаемый JavaScript, который затем используется для внесения любых изменений в страницу.

0 голосов
/ 24 марта 2011

когда вы нажимаете на другой профиль, Facebook не использует ajax для загрузки профиля, вы просто открываете новую ссылку просто старый html ... но, возможно, я вас неправильно понял

...