2009-04-25 2 views
1

Я использую Google Reader и хочу реализовать подобную технику так, как они «кажутся», для поздней загрузки содержимого каждого сообщения. Когда вы нажимаете на одну из ваших подписки, вы видите серию сообщений с фрагментом и другой информацией. Когда вы нажимаете на сообщение, он расширяется, чтобы показать полное тело. Я думал, что они просто переключают видимость элемента, но они, кажется, вставляют в DOM на лету. Вы можете это доказать, посмотрев на HTML после загрузки страницы - нет знака расширенного содержимого. Если тело содержит изображения, они загружаются только при расширении. Это значительно улучшает время загрузки исходного запроса, поскольку оно не загружает КАЖДОЕ изображение для КАЖДОГО сообщения.Динамическая загрузка элементов в Google Reader

У меня есть 2 идеи: Что происходит

  1. Они делают запрос AJAX и вставляя ответ, таким образом, загрузка и оказание любых изображений, как и в случае необходимости.
  2. Они что-то делают с JavaScript, но я понятия не имею, что именно.

Моей первой попытки визуализации свернутого содержания, но используется CSS, чтобы сделать его невидимым:

display: none

Я тогда щелкал visibiliy с JQuery:

$("itemDetail").toggle()

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

Вот вид списка (все свернутые):

alt text http://img6.imageshack.us/img6/4503/croppercapture1.jpg

Вот списка с расширенной пост:

alt text http://img6.imageshack.us/img6/4215/croppercapture2.jpg

Любые идеи?

+0

Я думаю, что часть вашего вопроса была утеряна. SO-маркер уценки немного глючен. – Calvin

ответ

1

Они делают запрос AJAX и вставки в ответ, при этом нагрузка и оказание каких-либо изображений, как и при необходимости.

Ну, да, это то, что они делают.

Итак, что конкретно? То, что вы делаете с видимостью, совершенно иное, и, как вы сами говорите, не так эффективно.

Так что вам нужно научиться make that request with JQuery и put the HTML you get from the request на странице в правой части.

+0

Ну, я не думал, что они делают вызов AJAX, потому что я не видел, чтобы какие-либо запросы делались на сервере с помощью Firebug !? Вы говорите обратное, но откуда вы знаете? Я еще немного подумал и понял, что они могут хранить скрытый HTML-код каждого элемента в JavaScript, а затем отображать его при нажатии на свернутую строку. Это объясняет скорость загрузки контента (очень быстро). –

+1

Ну, я сейчас смотрю на Google Reader, и элементы отображаются в формате «списка», а не «расширены», поэтому я вижу только заголовки. Когда я нажимаю заголовки, чтобы видеть содержимое сообщений, да, FireBug показывает мне один HTTP-запрос POST. Итак, я не знаю, на что вы смотрите, но моя теория все еще держится. – AmbroseChapel

0

Я не уверен, что запрос AJAX относится к серверу Google, когда вы нажимаете на свернутый элемент, чтобы развернуть его. Я использовал Firebug для отслеживания любых запросов с помощью вкладки Net. Я могу видеть только два запроса для этого конкретного элемента, и оба они относятся к серверу, на котором он размещен (в данном случае weblogs.asp.net), - не уверен, что первый делает, а второй получает imaage, встроенный в сообщение.Вот два снимки экрана, до и после, показывая запросы AJAX:

перед: alt text http://img207.imageshack.us/img207/8461/croppercapture12.jpg

После: alt text http://img207.imageshack.us/img207/6128/croppercapture13.jpg

Я не хочу, чтобы этот вопрос превратится в arguement, я Я просто излагаю доказательства, которые я нашел, что предполагает, что есть еще одно объяснение.

+1

Вы просматриваете неправильную вкладку. Запросы AJAX регистрируются на вкладке «Консоль». –

+0

Ошибка мальчика школы. Но та же точка применяется на этой вкладке. Когда вы нажимаете на подписку с навигации LHS, делаются два запроса AJAX, которые содержат JSON. Никаких дальнейших запросов не возникает, когда предмет расширяется !? Независимо от того, как Google это делает, я собираюсь сделать запрос AJAX, поскольку каждый элемент расширен, потому что он уменьшит размер главной страницы. Это всего лишь одна из тех вещей, где вы хотите знать, как они это сделали. –

+0

Если вы посмотрите на запросы JSON, вы увидите, что все данные отправляются в момент загрузки страницы. Запрос содержит все элементы, которые вы можете видеть на странице (название/содержание/и т. Д.). Эти данные позже используются при расширении темы. –

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