У меня есть базовый html-файл, который прикрепляется к java-программе. Эта java-программа обновляет содержимое части файла HTML всякий раз, когда страница обновляется. Я хочу обновить только ту часть страницы после каждого интервала времени. Я могу разместить часть, которую я хотел бы обновить в div, но я не уверен, как обновить только содержимое div. Любая помощь будет оценена по достоинству. Спасибо.Обновить Часть страницы (div)
ответ
Использование Ajax для этого.
Создайте функцию, которая будет извлекать текущую страницу через ajax, но не всю страницу, а только вопрос div с сервера. Затем данные будут (опять же через jQuery) помещаться внутри одного и того же div и заменять старый контент новым.
Соответствующая функция:
например,
$('#thisdiv').load(document.URL + ' #thisdiv');
Примечание. Загрузка автоматически заменяет содержимое. Обязательно укажите пробел перед селектором id.
Вам нужно сделать это на стороне клиента, например, с помощью jQuery.
Допустим, вы хотите, чтобы получить HTML в DIV с ID mydiv
:
<h1>My page</h1>
<div id="mydiv">
<h2>This div is updated</h2>
</div>
Вы можете обновить эту часть страницы с JQuery следующим образом:
$.get('/api/mydiv', function(data) {
$('#mydiv').html(data);
});
В стороне сервера вы необходимо реализовать обработчик для запросов, поступающих в /api/mydiv
, и вернуть фрагмент HTML, который находится внутри mydiv.
Смотрите эту скрипку, я сделал для вас для удовольствия, например с помощью JQuery получить данные ответа JSON: http://jsfiddle.net/t35F9/1/
Прохладный пример и облегчение. Можем ли мы найти в этом какие-либо недостатки? –
Предположим, что у вас есть 2 div внутри вашего html-файла.
<div id="div1">some text</div>
<div id="div2">some other text</div>
Java-программа сама по себе не может обновить содержимое HTML-файла, так как HTML связан с клиентом, тем временем Java связана с фоновым.
Вы можете, однако, обмениваться данными между сервером (внутренним концом) и клиентом.
Что мы говорим о AJAX, которое вы используете с помощью JavaScript, я рекомендую использовать jQuery, который является общей библиотекой JavaScript.
Предположим, вы хотите обновить страницу каждый постоянный интервал, тогда вы можете использовать функцию интервала для повторения одного и того же действия каждые x раз.
setInterval(function()
{
alert("hi");
}, 30000);
Вы также можете сделать это следующим образом:
setTimeout(foo, 30000);
Whereea Foo является функцией.
Вместо предупреждения («привет») вы можете выполнить запрос AJAX, который отправляет запрос на сервер и получает некоторую информацию (например, новый текст), которую вы можете использовать для загрузки в div.
Классический AJAX выглядит следующим образом:
var fetch = true;
var url = 'someurl.java';
$.ajax(
{
// Post the variable fetch to url.
type : 'post',
url : url,
dataType : 'json', // expected returned data format.
data :
{
'fetch' : fetch // You might want to indicate what you're requesting.
},
success : function(data)
{
// This happens AFTER the backend has returned an JSON array (or other object type)
var res1, res2;
for(var i = 0; i < data.length; i++)
{
// Parse through the JSON array which was returned.
// A proper error handling should be added here (check if
// everything went successful or not)
res1 = data[i].res1;
res2 = data[i].res2;
// Do something with the returned data
$('#div1').html(res1);
}
},
complete : function(data)
{
// do something, not critical.
}
});
где А бэкенд способен принимать данные POST'ed и способен возвращать объект данных информации, например (и очень preferrable) JSON, там есть много учебных пособий, где это делается, GSON от Google - это то, что я использовал некоторое время назад, вы можете взглянуть на него.
Я не являюсь профессионалом в получении Java POST и возвращении JSON такого рода, поэтому я не собираюсь приводить вам пример с этим, но я надеюсь, что это достойный старт.
Ваш пример Ajax, как вы его получите обновить вживую? – TheCrazyProfessor
Событие делегирование. http://api.jquery.com/on/ – Jonast92
$.ajax(), $.get(), $.post(), $.load()
функции jQuery внутренне отправить XML HTTP
запрос. среди них load()
предназначен только для определенного DOM Element
. См. jQuery Ajax Doc. Подробности Q.A. на них Here.
- 1. Обновить часть страницы
- 2. Обновить часть страницы
- 3. Только обновить часть страницы
- 4. PHP обновить только часть страницы
- 5. Обновить часть страницы в нефритовом?
- 6. Как обновить только часть страницы
- 7. Как обновить часть веб-страницы?
- 8. Как обновить часть страницы, когда установлен флажок?
- 9. Обновить часть страницы с помощью JS
- 10. php ajax обновить часть страницы по клику
- 11. Обновить часть веб-страницы после поиска
- 12. Обновить часть страницы с помощью JQuery
- 13. Как обновить часть страницы с интервалом
- 14. Обновить часть страницы при щелчке с angularjs
- 15. обновить часть веб-страницы в php
- 16. Как обновить определенную часть моей веб-страницы?
- 17. обновить часть HTML-страницы с помощью jquery
- 18. Как обновить часть страницы с помощью jquery
- 19. как обновить определенную часть php-страницы?
- 20. Нажмите кнопку текущей страницы, включите часть div
- 21. Convert div (Часть веб-страницы) to image
- 22. Div, чтобы заполнить остальную часть страницы
- 23. Как поместить div в нижнюю часть страницы?
- 24. Как для Codeignitor Pagination обновить определенную часть страницы
- 25. Как обновить только часть страницы индекса в MVC 5?
- 26. Обновить часть страницы на автозаполнении с помощью JS и PHP?
- 27. Обновить часть веб-сайта
- 28. Как получить: remote => true, чтобы обновить часть страницы?
- 29. Обновить часть страницы после успешного знака пользователя в (ASP.NET MVC4)
- 30. Ajax обновить содержимое страницы вместо содержимого div
Эй, парень, только что узнал, что вам не хватает места после «(двоеточие вправо?), Этот пример не работает из коробки :-) $ ('# thisdiv'). Load (document.URL + '#thisdiv'); –
Этот метод имеет большой недостаток. Если вы используете это и часть перезагрузки страницы, вы не можете повторить одно действие JQuery/Ajax без перезагрузки всей страницы в браузере. После перезагрузки этим методом JQuery не инициализируется/не будет работать снова. –
Вы уверены, что нам нужно место перед тегом #? Я работал для меня, если я удалю #tag. – Kurkula