document.write('Записываем'); document.write('Дописываем'); document.close(); // Закрываем документ document.write('Перезаписываем - это снесет все, что было записано раньше.');
Когда страница загружается естественным образом, по готовности документа он закрывается и попытка дописать что-то, не допишет данные в конец, а снесет и перезапишет все, что есть.
Вписывает, если документ еще не закрыт, если документ закрыт, то перезаписывает имеющийся документ и при такой перезаписи скрипты целевого сайта слетают и не мешают работать уже твоему интерфейсу.
Я сам очень часто используя document.write. Допустим надо тебе на сторонний сайт добавить дополнительный функционал, берешь и при помощи document.write сносишь страницу, после чего заливаешь свой интерфейс, который имеет доступ к API сайта. Очень удобно так делать простеньких ботов, которые автоматизируют рутинные задачи на тех или иных сайтах - все делается с минимумом усилий и все благодаря document.write.
Есть еще один способ организации Real Time соединения, как таковой у него нет названия, но фактически это обычный Long Polling реализованный на базе протокола JSONP. Для получения данных используется тег script и длинные опросы, никаких fetch и XHR, чистый хардкор)
Кстати, а как вы победили заморозку вкладки браузером? Потому, что если SSE соединение бы улет висеть в какой-нибудь фоновой вкладки, то рано или поздно эта вкладка заморозиться хромом и тогда остальные ваши вкладки (включая активную) перестанут получать уведомления.
У меня интересный вопрос, а как у них закон относится к использованию localStorage? Если куки на сайте полностью заменить на хранилище, то нужно ли потом согласие спрашивать?
Пффф, с таким же успехом я могу вообще не грузить ничего кроме ключей и текста, а затем уже как будет клик или прокрутка подгружать реальную страницу со всеми картинками и структурой.
Промисы это не про цепочки, промисы это про удобство. Нет смысла использовать Joomla .request() когда из под корокби в Joomla 3 идет библиотка jQuery, при этом она уже подключена, делать ничего не надо. И самое главное ее достоинство, что с ней можно использовать await! Просто оцените насколько удобнее делать запросы:
Не нужно никаких колбеков для ожидания ответа, нет лишних вложенностей, можно просто дальше работать с ответом, словно пишешь синхронный код. Токен конечно сам не добавляется, но ни что не мешает указать его в заголовках самому.
Согласно моему опыту, лучшая капча - это отслеживание браузерных событий. Запись событий должна соответствовать определенному паттерну: прокрутка вниз, движения мыши, клики по полям ввода.
А что если мне не нужна краткость? Браузеру абсолютно все равно использую я стрелочные функции или пишу код по старому, но этого де не скажешь про меня. Для меня, как и для многих важна читабельность / понятность кода и я не вижу ни одной причины тратить свое время на разгадку стрелочных ребусов.
Поверьте, к тому моменту уже придумают умные блокировщики рекламы, которые смогут вырезать ее напрямую из отдаваемого изображения. Противостояние меча и щита бесконечно.
Инструмент интересный, но на мой взгляд, человек не знающий JS эффективно использовать его не сможет, а вот знающий — вполне. Однако, зачем человеку знающему, этот инструмент вообще может понадобится, ума не приложу.
У меня немножко подгорело, все эти всплывашки можно было сделать на чистом CSS. Зачем все эти мегатонны тяжелого JS-кода?!!
P. S. Но все равно, за статью спасибо, ценю ваш труд и потраченные усилия.
document.write('Записываем');
document.write('Дописываем');
document.close(); // Закрываем документ
document.write('Перезаписываем - это снесет все, что было записано раньше.');
Когда страница загружается естественным образом, по готовности документа он закрывается и попытка дописать что-то, не допишет данные в конец, а снесет и перезапишет все, что есть.
Вписывает, если документ еще не закрыт, если документ закрыт, то перезаписывает имеющийся документ и при такой перезаписи скрипты целевого сайта слетают и не мешают работать уже твоему интерфейсу.
Тем что только document.write именно что сносит страницу, вместе со всеми таймерами и обработчиками. Предложенный вами вариант так не умеет.
Я сам очень часто используя document.write. Допустим надо тебе на сторонний сайт добавить дополнительный функционал, берешь и при помощи document.write сносишь страницу, после чего заливаешь свой интерфейс, который имеет доступ к API сайта. Очень удобно так делать простеньких ботов, которые автоматизируют рутинные задачи на тех или иных сайтах - все делается с минимумом усилий и все благодаря document.write.
Есть еще один способ организации Real Time соединения, как таковой у него нет названия, но фактически это обычный Long Polling реализованный на базе протокола JSONP. Для получения данных используется тег script и длинные опросы, никаких fetch и XHR, чистый хардкор)
Кстати, а как вы победили заморозку вкладки браузером? Потому, что если SSE соединение бы улет висеть в какой-нибудь фоновой вкладки, то рано или поздно эта вкладка заморозиться хромом и тогда остальные ваши вкладки (включая активную) перестанут получать уведомления.
Пффф, с таким же успехом я могу вообще не грузить ничего кроме ключей и текста, а затем уже как будет клик или прокрутка подгружать реальную страницу со всеми картинками и структурой.
Это бессмысленный велосипед, так как Joomla поставляется с уже подключенными jQuery, выше я привел пример.
Промисы это не про цепочки, промисы это про удобство. Нет смысла использовать Joomla .request() когда из под корокби в Joomla 3 идет библиотка jQuery, при этом она уже подключена, делать ничего не надо. И самое главное ее достоинство, что с ней можно использовать await! Просто оцените насколько удобнее делать запросы:
Не нужно никаких колбеков для ожидания ответа, нет лишних вложенностей, можно просто дальше работать с ответом, словно пишешь синхронный код. Токен конечно сам не добавляется, но ни что не мешает указать его в заголовках самому.
Поддерживаются ли промисы? Например, тот же jQuery.ajax() умеет в промисы, достаточно добавить await, чтобы убедиться, а здесь с этим как?
Согласно моему опыту, лучшая капча - это отслеживание браузерных событий. Запись событий должна соответствовать определенному паттерну: прокрутка вниз, движения мыши, клики по полям ввода.
А что если мне не нужна краткость? Браузеру абсолютно все равно использую я стрелочные функции или пишу код по старому, но этого де не скажешь про меня. Для меня, как и для многих важна читабельность / понятность кода и я не вижу ни одной причины тратить свое время на разгадку стрелочных ребусов.