2013-10-06 5 views
0

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

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

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

ответ

1

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

$.ajaxSetup({ cache: true }); 

запросы Кэширование фактически настроек по умолчанию в JQuery, так что кэширует ответы все время.

+0

Google Chrome, похоже, не кэширует содержимое ajax, но по умолчанию IE10. – jacouh

0

В нашем использовании 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.

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