Как jquery отображает изображение, полученное по запросу ajax? - PullRequest
1 голос
/ 15 марта 2010

У меня это отлично работает, но я бы хотел глубже понять, что на самом деле происходит за кулисами.

Я использую метод Jquery Ajax, чтобы получить 5 сообщений в блоге (возвращая только заголовок и первое фото). PHP-скрипт захватывает заголовок и первую фотографию постов в блоге, помещает их в массив и отправляет обратно в браузер как JSON.

Получив объект JSON, Jquery берет первый член объекта JSON и отображает его заголовок и фотографию. В галерее я сделал, используя кнопки - пользователь может перебирать 1-5 сообщений.

Таким образом, фактический вызов AJAX происходит сразу и только один раз. Я в основном использую этот вид установки: $ ('my_div'). Html (json_obj [i]), и каждый клик делает i ++.

То есть jquery извлекает эти записи из блога из памяти моего компьютера, из кэша моих веб-браузеров или из какого-либо кэша в движке Javascript?

Одной из вещей, которую он возвращает, является довольно мрачный анимированный GIF. Мне просто интересно, если он постоянно работает в фоновом режиме (но не виден), кража циклов обработки ... и т. Д. Или Javascript, просто вставляющий (скажем, флэш-фильм) в DOM, но перед этим ничего не делает, кроме как занимает немного памяти (без обработки).

В любом случае, мне просто любопытно. Если кто-то является гуру в этом, я хотел бы услышать ваше мнение. Спасибо!!

Ответы [ 3 ]

2 голосов
/ 15 марта 2010

Возвращаемый JSON содержит HTML-код для отображения заголовка и изображения.

Когда элемент img, содержащийся в json, добавляется в DOM (<img src="blah">), тогда браузер фактически загружает изображение в кэш. На этом этапе изображение - это просто набор двоичных данных, которые не превращаются ни во что, пока веб-браузер не интерпретирует их и не отображает их на экране. Ваш анимированный GIF-файл не занимает никаких циклов обработки или дополнительной памяти, пока он фактически не отобразится на экране.

1 голос
/ 15 марта 2010

JavaScript ничего не делает. Он сохраняет в памяти только то, что вы вставляете (ссылки на внешние изображения, текст и т. Д.). Когда вы вставляете его в DOM, ваш браузер обрабатывает контент, отображая текст и графику, которые, в свою очередь, могут загружаться непосредственно с внешнего сервера или из кэша браузера.

0 голосов
/ 15 марта 2010

Похоже, вы сохраняете json в массиве и отправляете его по нажатию. Таким образом, содержимое массива json не будет обрабатывать циклы обработки.

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