2011-07-08 4 views
1

Является ли это правильным способом, чтобы обновить часть веб-страницы:Обновить часть страницы с помощью JQuery

$("#content").load(location.href+" #content>*",""); 

Обратите внимание, что я не запрашивая новые данные здесь, но в основном повторной загрузки содержимого DIV как часть функции успеха .ajax.

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

ответ

1

На этой странице: http://blog.mediasoft.be/partial-page-refresh-with-ajax-and-jquery/ похоже, что некоторым людям не удается заставить это работать на IE, поэтому я собираюсь предположить, что он еще не надежен на 100% и продолжит использовать стандартный способ обновления контента с помощью JQuery на данный момент.

5

Это кажется намного проще, чем запрос данных через AJAX функции и загрузки, что на страницу,

Метод .load() посылает запрос AJAX, так что нет, это не просто, это абсолютно то же самое: -) В дополнение к стандартным методам , $.post() и $.ajax() он позволяет вам предоставить селектор, чтобы вы могли получить только часть возвращаемого HTML во время запроса AJAX. Возможно, именно это делает его более удобным в некоторых ситуациях. Но за кулисами весь этот метод в конечном итоге вызывает $.ajax(). Они просто сокращенные.

+0

Это не то же самое, разница в том, что здесь я не возвращаю HTML во время запроса ajax, я использую HTML-код, который уже находится на веб-странице. Возможно, я должен был сделать это более ясным. –

+0

@rolling stone, когда вы говорите, что это проще, что зависит от вашей ситуации. Например, метод .load не предоставляет вам обратный вызов для обработки ошибок.Поэтому, если в вашем сценарии вы хотели сделать это, вероятно, это не правильный метод для вас. Все это очень субъективно. Поэтому, если вы сочтете это полезным, продолжайте использовать его. Нет недостатков. Я не знаю, какого ответа вы ожидаете. –

+0

Я имею в виду эту часть метода: 'location.href +" #content> * "," "Мой вопрос касается не только метода .load. Я не возвращаю новые данные для загрузки, я использую .load() для повторной загрузки содержимого существующего div. –

0

На самом деле нет проблем, действие load является оберткой для jQuery.ajax, оно также выполняет некоторые проверки и присваивает html выбранному элементу.

+0

Спасибо @aruss. Чтобы быть ясным, я не возвращаю HTML во время действия загрузки, а скорее загружаю HTML из div, который находится на текущей веб-странице. –

+0

Я ссылался на действие 'load' загружает содержимое из' location.href' и присваивает его '$ (" # content ")' element – aruss

+0

да, я должен добавить, что я использовал этот метод раньше и, похоже, работает успешно. Он чувствует себя немного взломанным, хотя я просто стараюсь, чтобы он работал последовательно во всех средах. –

0

Вы можете перезагрузить раздел видимой страницы, используя iframes, если вы можете принять их ограничения.

1

Если вы хотите, чтобы обновить часть веб-страницу, скажем, содержание внутри элемента, который имеет идентификатор или класс «содержание»:. <div id="content" class="content">Content to refresh via ajax...</div>

$ («# содержание») нагрузки ("Аякс/newcontent.html ');

или

$ ('Содержание ') Нагрузка (' Ajax/newcontent.html.');

Содержимое, возвращенное с url "ajax/newcontent.html", заменит содержимое внутри элемента div идентификатором или классом = "content".

+0

Да, я знаю. точка вопроса заключается в том, является ли использование 'location.href +" #content> * "," "' правильным и приемлемым способом сделать это, поскольку он намного проще, чем традиционный метод, который вы описываете. –

+0

Часть вашего выражения «#content> *» означает, что из фрагмента/документа содержимого, который вы возвращаете, разбор и поиск элемента содержимого «id» внутри него, а также разметку внутри него, а затем загрузить его на свою страницу элемент id "content". Я не уверен, что это то, что вы хотите сделать. – VajNyiaj

+0

Нет, вам не хватает части 'location.href +'. Я не возвращаю никакого контента, я перезагружаю любой контент на странице с содержащим элементом с идентификатором «content». Я должен добавить, что раньше использовал этот метод, и он, похоже, работает успешно. Он чувствует себя немного взломанным, хотя я просто стараюсь, чтобы он работал последовательно во всех средах. –

0

Спасибо @aruss. Чтобы быть ясным, я не возвращаю HTML во время действия загрузки, а скорее загружаю HTML из div, который находится на текущей веб-странице. - прокат камень 11 минут назад

-

Тогда нет необходимости использовать метод загрузки(). Это так же просто, как

$ ('# content'). Empty(). Html ($ ('# idOfContentNeeded'). Html());

+0

Мне следовало бы объяснить это лучше. У меня есть функция JQuery, которая обновляет некоторую информацию о пользователе в базе данных и вместо того, чтобы запрашивать какой-либо новый html для загрузки в div, мне интересно, могу ли я просто обновить сам div и обновить содержимое таким образом. Я не добавляю HTML из одного элемента в другой, я перезагружаю элемент, который должен появляться с обновленным контентом на основе данных, которые были обновлены в db. –

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