How to stop page load | JavaScript

Как остановить загрузку страницы

Страница загружается до того места, где находится JavaScript. Затем чтение HTML будет прервано.

if(window.stop !== undefined) {
  window.stop();
} else if (document.execCommand !== undefined) { // для IE
  document.execCommand("Stop", false);
}

Как прервать, а потом возобновить загрузку страницы

<div id="stop-load">
  <div onclick="stopLoad()">Сlick</div>
</div>


<script>
var sl = document.getElementById('stop-load');

function stopLoad() {
  sessionStorage.setItem('stopload', 'none'); // занести переменную в хранилище
  location.reload(); // перезагрузить страницу
}

if(sessionStorage.getItem('stopload')) { // если в хранилище есть переменная 'stopload'
  sl.parentNode.removeChild(sl); // удалить элемент
  sessionStorage.removeItem('stopload'); // удалить 'stopload' из хранилища
}else{ // остановить загрузку HTML страницы
  if(window.stop !== undefined) {
    window.stop();
  } else if (document.execCommand !== undefined) {
    document.execCommand("Stop", false);
  }
}
</script>
в f t
наверх ↑

9 комментариев:

Космо Мизраил Горыныч
Мда, комментарии теперь оставлять тяжелооо...)
Ну а вообще - брависсимо! �� теперь можно это дело приправить аяксом и получить сео-френдли бесконечную прокрутку)
NMitra
Пока так. Очень много спама падает, к осени отключу ))
Мне тоже приходила эта мысль. Но главным мотивом послужил AdSense, согласно правилам которого нельзя перекрывать его рекламу другими элементами. window.stop() справляется с этой задачей.

Ещё я задавалась вопросом, насколько эта бесконечная загрузка удобна. Вроде её пробывали внедрять и Яндекс, и Гугл и впоследствии отказались.
Космо Мизраил Горыныч
Я не про капчу, а про невозможность сразу же после отправки в этой статье увидеть свой комментарий) ещё оказалось, что комментарий с первого раза не отправился (ибо инет дно).

Бесконечную загрузку делать нельзя, а бесконечную прокрутку - можно, но только умея это делать и лишь в определённых случаях!
В первую очередь, бесконечная прокрутка неприменима к текстовым сайтам, ибо в них сразу же теряешься в материале.
Далее надо не автоматом загружать страницы, а по желанию пользователя. /* О.О появились идейки идеального бесконечного скроллинга! реализую - заделюсь) */
Кроме этого, необходимо сохранять навигацию - чтобы можно было быстро переключаться между подгруженными страницами.
В яндексе и гугле (да и вообще везде) сначала всё само грузилось без предупреждения. Это приводило к утечкам трафика моего несчастного модема, да и у других тоже, а ведь результаты вообще не всегда надо загружать было! И серверу, и юзеру нагрузка ненужная. Кроме этого, есть проблема с коммерческой стороны - что делать с рекламными блоками, чтобы их кликооборот не падал?
Сейчас в поиске картинок что в яндексе, что в гугле результаты подгружаются автоматом до опр. страницы, а дальше просят разрешения (кнопка "загрузить ещё"). Это разумное решение, но 10 начальных страниц в яндексе - это чересчур... На мой взгляд, такая кнопка должна быть уже в конце первой страницы и вновь появляться раз в 5-10 страниц.
Вот такое вот "маленькое" имхо :)
NMitra
Может есть предложения: почему у меня именно эта страница в Хроме не видит window.stop();? Хотя этот же код ставлю на тестовый блог и там в Хроме порядок.

Про рекламные блоки - ты прав 100%. Даже мысли не возникло.

Я привыкла к бесконечной "прокрутке" (да-да, всё верно:)) в сообщениях ВКонтакте, но найти нужный фрагмент из переписки спустя время очень непросто. Да, с ней нужно быть осторожным.
NMitra
Не, вру. window.stop(); в Хроме работает не так как в Мозилле. Он загружает родителя.

<div>родитель
<div>потомок1: здесь window.stop();</div>
<div>потомок2</div>
</div>

Родитель и потомок1 загрузятся. Не загрузится потомок2.

Печаль...
Космо Мизраил Горыныч
Есть решение.

Копипаст из мазилки, для справки:
Because of the order in which scripts are loaded, the stop() method cannot stop the document in which it is contained from loading, but it will stop the loading of large images, new windows, and other objects whose loading is deferred.

То бишь функция сама предназначена для изображений и фреймов => пихаем страницу в ифрейм и останавливаем загрузку через родителя с:
NMitra
Эх, уже не так красиво, как в Мозилке. Я сначала думала через alert, тот создаёт модальное окно и html временно не грузится. Но изменить внешний вид этого alert ужасно трудно.
Космо Мизраил Горыныч
Что-то ваш пример мало соответствует моему телефону :/ что-то где-то написано было про загрузку родителя??
У меня либо загрузка заканчивается где-то в районе второго скрипта, либо полностью загружается страница (от временного хранилища не зависит). По-моему это зависит от вёрстки и скорости загрузки. Типа "если успело загрузиться что-то, что можно отрендерить - рендерим". В инете есть предложение скриптом написать < div style="display: none;" > < plaintext >
NMitra
Я пока сдаюсь.