JS Проверка смены значения блока на лету

12
V
На сайте с 10.01.2012
Offline
85
1022

Приветствую, форумчане!

Есть скрипт который средствами JSON обрабатывает данные с другого сервера.

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

И суть в том, что получить обновленные данные можно только после перезагрузки страницы.

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

Заранее благодарю за ответ.

izbushka
На сайте с 08.06.2007
Offline
110
#1
Varenik:
Нажали некую кнопку - выскочило окошко (новая вкладка браузера)

В этом вся проблема.

Либо придумать как делать в том же окне (iframe, например) или на основоной странице дергать периодически сервер аяксом на предмет изменения данных.

V
На сайте с 10.01.2012
Offline
85
#2

А каким образом сделать периодическую проверку? если нужна реакция сразу же после выполнения данных.

Или лучше попробовать подгружать данные в обыкновенном модальном окне и непосредственно уже при его закрытии делать проверку?

Окно по сути не вкладка (а может и она =) ) - на подобии как добавить в=закладку ВК выскакивает - не знаю как правильно его назвать.

izbushka
На сайте с 08.06.2007
Offline
110
#3
Varenik:
А каким образом сделать периодическую проверку? если нужна реакция сразу же после выполнения данных.

Можно дергать каждую секунду например :) Понятно, что это нагрузка. Это чисто теоретичексое решение, я бы не использовал

Varenik:
Или лучше попробовать подгружать данные в обыкновенном модальном окне и непосредственно уже при его закрытии делать проверку

На мой взгляд это самое правильно решение.

V
На сайте с 10.01.2012
Offline
85
#4

если код вызова имеет такую структуру

onclick="window.open(\'http://www.sait.ru/getprice.php?'+name=....

Не подскажете в каком направлении думать для реализации?

С Iframe никогда не работал и по мануалам что-то не могу понять...

izbushka
На сайте с 08.06.2007
Offline
110
#5

Это не так просто как вам кажется.

Открывать окно нельзя.

Красивее всего переписать страницу, чтоб то, что вы открываете в новом окне, подгружалось аяксом в том же окне в какой-то div, который можно чтоб выглядел как модальное окно (стилями).

Если хочется меньшей кровью, то можно по клику создавать div на весь размер окна броузера, открывать там в iframe вашу страницу, и навешивать с помощью JS нужные действия.

V
На сайте с 10.01.2012
Offline
85
#6

А отследить нажатие кнопки отправки запроса в iframe есть возможность?

izbushka
На сайте с 08.06.2007
Offline
110
#7
Varenik:
А отследить нажатие кнопки отправки запроса в iframe есть возможность?

Нажатие кнопки отследить несложно. Проще всего это делать на той странице, которая в iframe (т.е. обращаться к родителю window.parent.. из iframe)

Можно при загрузке фрейма из основной страницы навешивать событие на нужную кнопку во фрейме через JS..

Но нужно учитывать, что нажатие кнопки означает только отправку данных на сервер, а не изменение их на сервере.

V
На сайте с 10.01.2012
Offline
85
#8
Но нужно учитывать, что нажатие кнопки означает только отправку данных на сервер, а не изменение их на сервере.

В моем случае отправка и подразумевает изменение, пусть они будут нулевыми, но это всеравно изменения.

Спасибо за наводки - буду пробовать.

izbushka
На сайте с 08.06.2007
Offline
110
#9
Varenik:
В моем случае отправка и подразумевает изменение,

Я имею ввиду, что с момента отправки данных (нажатие на кнопку) до момента фактического изменения данных на сервере (обработки запроса) пройдет некоторое время.

V
На сайте с 10.01.2012
Offline
85
#10

Теперь понял. но поставить задержку в 5 секунд с крутящимся значком это у выход.

Вот смотрите что получается. Вместо

onclick="window.open(...);"

ставлю

onclick="window.frames['buffer'].location='';

Блок фрейма на сайте находится.

Но данные не загружаются в него, а открывается та же страница в новой вкладке с приставкой #

Что это может быть?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий