Ajax: замените содержимое контейнера на загрузку в другом div?

Я пытаюсь создать веб-сайт ajax. Интуитивно понятным способом является использование метода jquery.html() для замены содержимого контейнера новым контентом.

Однако подумайте, что пользователь может посетить A, а затем B, а затем снова A, вторая манипуляция перезагрузкой A кажется ненужной.

Другой способ - загрузить содержимое ajax в новый div и как-то скрыть исходное содержимое. Однако мне кажется, что это очень удобно для меня, и мне интересно, есть ли хорошие рамки или плагины, чтобы лучше справиться с этим. И будет ли проблема производительности в этом случае, поскольку элементы dom продолжают расти?

2 ответа

вы можете кэшировать Ajax-запросы, поэтому клиентский javascript не будет запрашивать сервер каждый раз, когда вам нужен контент. Например. в jQuery:

$.ajaxSetup({ cache: true });

Запросы кэширования на самом деле являются настройками по умолчанию в jQuery, поэтому он кэширует ответы все время.


В нашем использовании jQuery Google Chrome, похоже, не кэширует содержимое ajax, но IE10 действительно делает по умолчанию.

Чтобы избежать двойной загрузки динамического содержимого в целом, мы используем необработанный метод, подобный этому для div id = "mydiv":

if($("#mydiv").get(0).loaded)
{
}
else
{
 $("#mydiv").get(0).loaded = true;
 //
 // here we load ajax content for mydiv:
 //
 ...
}

загруженный пользовательский JavaScript-ресурс объекта постоянного объекта DOM mydiv, а не временного объекта jQuery.

licensed under cc by-sa 3.0 with attribution.