powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Посоветуйте как передать данные в обновляемую страницу HTML
25 сообщений из 56, страница 2 из 3
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107222
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да зачем весь этот бред. Почему не сделать, как это делается всегда и всюду?
Получил JSON от сервера, распарсил, получил объект и делай дальше, что хочешь.
Зачем сложности с дивами, обсерверами...?
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107239
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Да зачем весь этот бред. Почему не сделать, как это делается всегда и всюду?

Экспериментирую пока. Сейчас посмотрю, можно ли что-то из AJAX вытянуть в этом случае. Читаю про CallBack в частности. Была бы поддержка WebSocket со стороны сервера, наверное, было бы проще и надежнее. Но чего нет, того нет.
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107245
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Andi_WEB
Так... переменные передаются
а сам факт передачи - ни есть из изменение?
почему по факту передачи не запускать их обработку ?
Вот тоже не понял, почему не делать так, зачем отслеживать изменения, как будто они происходят чудесным неизвестным способом, а не свой же код меняет.
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107248
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62
Вот тоже не понял, почему не делать так, зачем отслеживать изменения, как будто они происходят чудесным неизвестным способом, а не свой же код меняет.
ещё немного и предложу ws
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107270
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Вот тоже не понял, почему не делать так, зачем отслеживать изменения, как будто они происходят чудесным неизвестным способом, а не свой же код меняет.

Виноват, недопонял. С одной стороны, оно, конечно так. А с другой - не совсем. Есть готовая подсистема WEB-сервера, которая почти черный ящик, заменить его невозможно. Логика его работы, равно как и существенное расширение его функциональных возможностей, мне принципиально недоступны для модификации. Эта програмная часть выдает готовую страницу, в которую мне хотелось бы добавить еще данных от других датчиков. Со стороны браузера никаких событий, нажатий не происходит. Известно только, что на странице, которую формуирует сервер, работает таймер, по которому и обновляется страница. Вот как-то так. Вот я и изучаю технологии, связанные с JS, смотрю вокруг так сказать. Кстати, с DIV дело похоже также попахивает фиаско. Похоже, что при работе таймера обновляется и JS на странице. Иначе говоря, с обновлением теряется предыдущее состояние подсистемы JS. Можно, конечно, посмотреть в сторону local storage браузера, подумаю. Во всяком случае, эта задача, по-моему, прекрасная зарядка для ума.
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107308
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andi_WEB,

вся страница обновляется по таймеру?
это обозначает, что происходит перезагрузка всей страницы?

что происходит с данными? они обрабатываются для вывода на экран?
что за вывод на экран?
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107333
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>вся страница обновляется по таймеру?
>это обозначает, что происходит перезагрузка всей страницы?

Трудно сказать. Я не настолько пока силен в отладчике браузера, что бы полностью понять, где там что. Страница, генерируемая сервером, снабжена JS. Попадаются и фразы с AJAX.

>что происходит с данными? они обрабатываются для вывода на экран?
>что за вывод на экран?

Сейчас в браузере судя по всему ничего не обрабатывается, строго говоря. Отображается страница, сформированная сервером. Если на сервере ничего не происходит (состояние логических датчиков не изменяется), то в отладчике браузера скорость обмена примерно 1 Кб в секунду. Если что-то изменяется, объем передаваемых данных несколько увеличивается. Браузер потребляет 1-2% процессорного времени, в основном, до 1 процента. Визаульно в браузере URL конечно не меняется, и вообще нет с строке состояния никаких визуальных изменений. А данные тем не менее поступают от сервера. Это, насколько я понимаю, и есть частичное обновление страницы по таймеру и AJAX.
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107352
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. понимать это надо так.
1. Есть сервер, который при обращении, выдает готовую html страницу с данными. И заставить выдавать его что то другое, например JSON, нет никакой возможности.

2. Вы хотите сделать свою страницу, которая будет периодически обращаться к серверу, получать от него данные, но в виде текста html, извлекать из этого html данные и отображать их уже на своей странице.

Правильно я понял?

Если так, то не можете ли вы привести пример той страницы, которую генерит сервер? Если они не слишком большие.
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107354
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
P.S. Но вообще часть страницы, так сказать верхняя, включая JS судя по всему, именно не обновляется, да. В отладчике Edge на вкладке "Элементы" при обновлении страницы (поступлении данных) красным выделяются только строки, которые содержат таблицы и процее. Шапка страницы остается неизменной. Интересно, какое событие за это отвечает.. это точно не document.addEventListener("DOMContentLoaded"...) и похоже не window.onload.
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107377
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andi_WEB,

надо выяснить точно данные на странице (без твоего внедрения) обновляются по ajax?
или ещё и происходит полное обновление ? по какому событию?

вообще не логично , что страница сама обновляется полностью.
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107386
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>1. Есть сервер, который при обращении, выдает готовую html страницу с данными. И заставить выдавать его что то другое, например JSON, нет никакой возможности.

>2. Вы хотите сделать свою страницу, которая будет периодически обращаться к серверу, получать от него данные, но в виде текста html, извлекать из этого html данные и отображать их уже на своей странице. Правильно я понял?

Да, спасибо, почти все так. Из готового сервера (в связке с железом) страница выходит в некотором виде. Но у этого сервера, скажем так, есть программный интерфейс, который позволяет только что-то добавить к странице и потом она уже уйдет к пользователю. Ну или ничего не добавлять, уйдет как есть.

В прилагаемом примере там сейчас простейшая таблица. Но сервер, в зависимости от внешних устрйств, может генерить и гораздо более сложные страницы. Но в общем, сейчас это не важно наверное. Суть в том, что бы попытаться добавить туда еще данных, о которых сервер не осведомлен и отобразить их в браузере.

Если предположить, что JS может быть в любом месте, я думал дописать в конце данные от другого устройства + обрабатывающий их JS (отображение я сделаю, это уже следующий этап). И уже результирующую страницу выдавать в браузер.
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107393
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andi_WEB,

ты отвечать на поставленные вопросы будешь?
иначе трудно понять что у тебя там
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107567
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там все очень непросто.
Как добавить что то на уже существующую страницу извне, не меняя текста самой страницы - вообще трудно сказать.
Но там, как можно понять, работа идет так -
Открывается страница, которая приходит с сервера. Сама она больше не перезагружается.
Но у нее есть iframe. Он не виден, т.к сдвинут в координаты (-10000, -10000).
Вот он толи перезагружается, толи выдает ajax запросы по таймеру.
Что он делает дальше - пока не понял. Возможно уже код из этого iframe меняет родительскую страницу. Но не перезагрузкой, а просто изменением DOM.

Код довольно старый, разбирать его тяжело. Написан во времена IE4 и NN6. (Еще до появления Firefox, не говоря уж о Хроме, если кто не помнит).
Тем более, там некоторые скрипты похожи просто на библиотеки, из которых значительная часть просто не используется.
Без отладчика трудно смотреть, что там творится на самом деле.
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107571
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ.

А если все же попробовать вариант с добавление <div id="tcp_cb" data-columns="0,455979254795238" data-columns1="asd"> </div>
Это как пробная структура. Ее потом видно в отладчике, она доступна и для отслеживания измененний, если по document.addEventListener("DOMContentLoaded"...) приклеить к странице и запустить код, который я приводил ранее.

Но работает это не долго. Почему - пока не понимаю. Знаний предмета не хватает. Если я меняю что-то в отладчике, скажем в этом значении "0,455979254795238", то это, конечно, срабатывает. Но перестает работать после первого изменения содержимого страницы. Хотя в отладчике шапка страницы, содержащая JS-код визуально не менятся - отладчик при изменении содержимого подсвечиват красным только строки с таблицей например. Если код JS потом ввести в консоли, то опять работае до первого изменения страницы по таймеру. Точнее, таймер-то понятно щелкает всегда, но если состояние датчиков на сервере не изменилось, то ничего не обновляется.

Первый и самый главный этап - это внедрить дополнительные данные извне и получить возможность обрабатывать их на JS. С отображением проще - у сервера есть админка, где можно создать пустые таблицы, если ильно захотеть. Т.е. место для отображения будет...
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107610
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Но работает это не долго
Подозреваю, что не работает потому, что при обновлении страницы "<div id="tcp_cb" по факту уже не тот. Т.е у него уже нет обработчика, это другой экземпляр?
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107619
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andi_WEB
> Но работает это не долго
Подозреваю, что не работает потому, что при обновлении страницы "<div id="tcp_cb" по факту уже не тот. Т.е у него уже нет обработчика, это другой экземпляр?

Да конечно, если создали новый див, то это ужу совсем другой, хоть и с таким же ид.

>А если все же попробовать вариант с добавление <div id="tcp_cb" data-columns="0,455979254795238" data-columns1="asd"> </div>
> если по document.addEventListener("DOMContentLoaded"...) приклеить к странице и запустить код, который я приводил ранее.

Вот этого всего не понимаю. Куда добавить? В какую страницу?
Что значит приклеить и запустить?
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107707
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
> Вот этого всего не понимаю. Куда добавить? В какую страницу?

А. так это там совсем просто, сорри что не объснил толком.

У сервера есть несколько GET запросов, видимо, для расширения планировалось. Один из них - add_string с параметром. Если его выполнить с некой строкой, то она просто будет добавлятся в конец каждого ответа. Т.е. он запоминает ее внутри и приклеивает к ответу в браузер.

А для JS там есть встроенный редактор, он так и называется - Пользовательский JavaScript. По умолчанию там пусто. Я добавил туда код обсервера, а get-запросом послал вот это: <div id="tcp_cb" data-columns="0,45597925479523" data-columns1="asd"> </div>

Результирующая страница в архиве. Даже если ее открыть локально, и в отладчике менять что-то в 0,45597925479523, то видно, что скрипт работает. Но до лбновления страницы. В которой есть и скрипт, и DIV - но изменения не фиксируются. Пробовал не останавливать таймер, а периодически брать элемент и вешать обсервер, но тогда в отладчике изменение данных отлавливается, а при обновлении страницы с сервера - нет. Вот этого я вообще понять на могу. Вот что там вначале было в обсервере:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
var timerId;
var Values_div = document.getElementById('tcp_cb');
var observer;
var  Dataset_Values;

function Check_Values (mutations) { 
  Dataset_Values= mutations[0].target; 
  alert(Dataset_Values.dataset.columns); // Выводим обновленное значение первой переменной
  alert(Dataset_Values.dataset.columns1); // Выводим обновленное значение второй переменной 
}


function Init_Observer() // Инициализация "наблюдателя" за изменениями
{
 Values_div = document.getElementById('tcp_cb');
 observer = new MutationObserver(Check_Values);
 observer.observe(Values_div, {attributes: true, attributeOldValue: true});   
}



function Create_Timer() 
{
 timerId=window.setInterval(Proxy_Function, 200); // Вызываем вспомогательную функцию
}


function Proxy_Function() 
{
 Init_Observer();
 window.clearInterval(timerId); // Останавливаем таймер
}


document.addEventListener("DOMContentLoaded", Create_Timer);
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107749
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andi_WEB
У сервера есть несколько GET запросов, видимо, для расширения планировалось. Один из них - add_string с параметром. Если его выполнить с некой строкой, то она просто будет добавлятся в конец каждого ответа. Т.е. он запоминает ее внутри и приклеивает к ответу в браузер.
ни фига не понятно
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107756
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andi_WEB,
Я все равно не понимаю

>У сервера есть несколько GET запросов, видимо, для расширения планировалось. Один из них - add_string с параметром. Если его выполнить с некой строкой, то она просто будет добавлятся в конец каждого ответа. Т.е. он запоминает ее внутри и приклеивает к ответу в браузер.
>а get-запросом послал вот это: <div id="tcp_cb" data-columns="0,45597925479523" data-columns1="asd"> </div>

Если просто добавить в конец ответа, то этот div добавится в конец - после закрывающего тега </html>

>А для JS там есть встроенный редактор, он так и называется - Пользовательский JavaScript. По умолчанию там пусто. Я добавил туда код обсервера,

Хотелось бы видеть, что в конце концов пришло в браузер.
В отладчике есть вкладка "Sources". Вот оттуда бы посмотреть, что пришло. И как скрипт туда добавился.
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107761
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Хотелось бы видеть, что в конце концов пришло в браузер.
> В отладчике есть вкладка "Sources". Вот оттуда бы посмотреть, что пришло. И как скрипт туда добавился.

Добрый день. Вот так это выглядит. Вполне прилично вроде. Архив: https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1339707&msg=22389337
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107762
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А это - JS:
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107764
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел что то в архиве.
Вы в отладчик то смотрите? Там же должны быть сообщения об ошибках.

Ваш код js добавляется в начало html файла между
<script>
и
</script>
ДО <body>
А что это значит? Это значит, что
var Values_div = document.getElementById('tcp_cb');
вернет null.
Т.к в момент выполнения скрипта никакого div с id=tcp_cb не существует.

Можно попробовать так
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
document.addEventListener("DOMContentLoaded", function () {
var timerId;
var Values_div = document.getElementById('tcp_cb');
var observer;
var  Dataset_Values;

function Check_Values (mutations) { 
  Dataset_Values= mutations[0].target; 
  alert(Dataset_Values.dataset.columns); // Выводим обновленное значение первой переменной
  alert(Dataset_Values.dataset.columns1); // Выводим обновленное значение второй переменной 
}


function Init_Observer() // Инициализация "наблюдателя" за изменениями
{
 Values_div = document.getElementById('tcp_cb');
 observer = new MutationObserver(Check_Values);
 observer.observe(Values_div, {attributes: true, attributeOldValue: true});   
}



function Create_Timer() 
{
 timerId=window.setInterval(Proxy_Function, 200); // Вызываем вспомогательную функцию
}


function Proxy_Function() 
{
 Init_Observer();
 window.clearInterval(timerId); // Останавливаем таймер
}

Create_Timer()
});



Но я не совсем уяснил, почему кто то должен менять параметры именно
data-columns="" data-columns1=""
и именно у div с id=tcp_cb ?
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107770
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, я немного поспешил и отправил не совсем ту страницу.
Обратите внимание, у меня есть описание var Values_div = document.getElementById('tcp_cb'); и она же получает значение в функции Init_Observer: Values_div = document.getElementById('tcp_cb');

Вариант, к корорым я экперементировал, имеет только var Values_div; Работает до первого изменения.

>Но я не совсем уяснил, почему кто то должен менять параметры именно
>data-columns="" data-columns1=""
>и именно у div с id=tcp_cb ?

Да это я послал серверу просто такую строку. Для теста. Вся строка "<div id="tcp_cb" data-columns="0,45597925479523" data-columns1="asd"> </div>" придумана мной и пока взята с потолка.

А так там будут нужные данные, до 2 Кб конечно примерно, но этого более чем достаточно. Несколько сотен байт.

В том то и дело, что в консоли никаких ошибок нет...
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107774
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andi_WEB,

использовать span в качестве div - это нечто
и блок style где-то внутрях dom - ещё круче
...
Рейтинг: 0 / 0
Посоветуйте как передать данные в обновляемую страницу HTML
    #40107777
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andi_WEB
Да это я послал серверу просто такую строку
откуда послал?
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 2 из 3
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Посоветуйте как передать данные в обновляемую страницу HTML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]