Как обращаться с «бесконечными» веб-страницами?

Когда-то жизнь была простой: все веб-страницы имели конечную длину, и если они не вписывались в текущий размер окна / вида, вы просто прокручивали вниз, пока не достигнете нижней части страницы.

Но я недавно заметил, что в мире веб-дизайна существует новая тенденция: бессточные веб-страницы.

Вероятно, наиболее знакомыми примерами сайтов, использующих такие страницы, являются Facebook и Twitter: вы прокручиваете до «дна», только чтобы вызвать некоторое обновление, которое добавляет контент на страницу, поэтому «старое дно» больше не является дном, Есть новое «дно».

В Android WebView мне нужно уловить весь контент, доступный в настоящее время на этой «странице», но я не уверен, как подойти к этому:

Имитировать прокрутку пользователя вниз через View.scrollBy (int x, int y) , pageDown () или window.scrollTo () ?

Или есть метод API, который делает это автоматически для меня?

Или я подхожу к этому совершенно неправильно, и я не должен пытаться добраться до «реального дна» в одном захвате (если возможно вообще)?

EDIT : Кажется, что пометив этот вопрос, javascript противоположное сообщение. Мне интересно захватить (затем обрабатывать) такие бездонные страницы на веб-браузере Android, используя Java .

Solutions Collecting From Web of "Как обращаться с «бесконечными» веб-страницами?"

Изменить: проигнорировать этот ответ, я неправильно понял вопрос. Оставив ответ, если другие неправильно понимают этот вопрос.


Вы можете использовать плагин jqPageFlow jQuery или основываться на своей документации.

Бесконечный свиток – еще один отличный вариант.

Независимо от того, какой язык вы используете, решение довольно простое. Вы просто поймаете bechavior пользователя (путем захвата текущего y и сравнения его с максимальным количеством страницы), тогда вам нужно добавить новую информацию к вашему контенту, используя асинхронное соединение. Вот и все. Не очень хорошо знаю Java, поэтому я могу только дать подсказку, но идея во всех технологиях / языках одинакова.

Учитывая следующую веб-страницу:

 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <!-- website code --> <!-- The endless articles you want to process --> <div class="article"> </div> <div class="article"> </div> <div class="article"> </div> <!-- ... --> </body> </html> 

Здесь будет использоваться код:

 (function($) { // closure $(function() { // when the document is ready var height = $(this).height(), // get initial height lastEl = null, // track last element processed getData = // this function will process the data as it comes in function() { var $elements = $(".article"); // don't reprocess data if(lastEl) { $elements = $elements .slice($elements.index(lastEl)+1); } lastEl = $elements .each(function() { // do what you want with the element }) // save the last element processed .get(-1) || lastEl; // finally, scroll to the bottom of the page $(window).scrollTop($(document).height()); }; $(document).bind('DOMSubtreeModified', function() { var newHeight = $(this).height(); if(newHeight != height) { height = newHeight; getData(); } }); getData(); }); })(jQuery)); 

Просто измените селектор $ elements на то, что вы хотите найти. Тогда с тобой все будет хорошо. Это многословие, но также и яркий свет.