Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Javascript в новой вкладке не такой как в старой (https://javascript.ru/forum/misc/56298-javascript-v-novojj-vkladke-ne-takojj-kak-v-starojj.html)

ninja2 09.06.2015 09:51

Javascript в новой вкладке не такой как в старой
 
Здорова!
Написал программку с аякс там заходим на страницу и там по таймеру каждые 2 секунды посылается на сервер аякс запрос, когда я открываю эту же программу еще в одной рядом в кладке или нескольких как мне сделать чтобы там были аналогичные данные как и те что на первой вкладке, у меня получается если сервер раз отправил одной вкладке данные, то он потом через время только отправляет другие данные. Как делать?

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

ksa 09.06.2015 09:57

Цитата:

Сообщение от ninja2
как это исправить?

По такому "описанию" проблемы можно посоветовать только принесение жертвы великому духу Ajax!

Rise 09.06.2015 09:57

ninja2, не понятно

Rise 09.06.2015 09:58

ksa, :lol:

ninja2 09.06.2015 10:40

Цитата:

Сообщение от ksa (Сообщение 374426)
По такому "описанию" проблемы можно посоветовать только принесение жертвы великому духу Ajax!

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

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

ninja2 09.06.2015 10:41

У меня получается в одной вкладке одного и того же сайта аякс подгрузил например 10 строк, открываем этот же сайт в соседней вкладке, а там нету этих 10 строк, там 0 строк. Как сделать чтобы во всех вкладках одинаково отображался сайт?

Мб. данные что подгружаются сохранять в javsScript куку, а затем когда новая вкладка открывается типо перезагрузка страницы вызвать раз функцию которая обновит эту куку или хз. как сделать.

Та проблема еще в том что у меня функция аякса вызывается по таймеру и когда открыты две и больше вкладок в браузере, то работает она всего в одной из вкладок, в соседних вкладках просто ничего не выводится, никакой активности, хотя идет запрос аякс непрерывно через 2 секунды и должны по идее обновлятся данные, а че не обновляются хз. Мб. жаваскрипт как то работает не понятно?

ksa 09.06.2015 11:05

Цитата:

Сообщение от ninja2
Мб. жаваскрипт как то работает не понятно?

Дело было не в бабине... (с) :nono:

ksa 09.06.2015 11:10

Цитата:

Сообщение от ninja2
У меня получается в одной вкладке одного и того же сайта аякс подгрузил например 10 строк, открываем этот же сайт в соседней вкладке, а там нету этих 10 строк, там 0 строк. Как сделать чтобы во всех вкладках одинаково отображался сайт?

Смотри какие запросы отправляются... Что им отвечают... И что потом с этим делается...

И начинай делать тестовый пример. Потому как пиши, не пиши - ясности это не добавит. :)

ninja2 09.06.2015 11:55

Цитата:

Сообщение от ksa (Сообщение 374436)
Смотри какие запросы отправляются... Что им отвечают... И что потом с этим делается...

И начинай делать тестовый пример. Потому как пиши, не пиши - ясности это не добавит. :)

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

ЕЕ нужно наверно по крону вызывать или хз. Та функция что дубли делает она раз вызывается когда сессия пользователя есть и когда в БД flag в 0 установлен, то тогда идет вызов этой функции. Получается одновременно эта функция вызывается в двух браузерах, эта функция изменяет в БД флаг в 1 и видимо она не успевает изменить этот флак до вызова в другом браузере.

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

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

ninja2 09.06.2015 11:58

От мы создали функцию допустим f() эта функция когда вызывается изменяет в БД столбец flag с 0 на 1 и добавляет 3 записи допустим, а перед ее вызовом проверяется условие если flag=0 то мы вызываем функцию f()

Она вообще должна раз вызватся, делаем запрос одновременно из двух браузеров и что проверяется условие и что получается у нас функция вызовется 2 раза и в БД появятся дубли. Так что получается через аякс функцию нельзя всего один раз вызвать???? Получается через аякс функция может случайно вызватся одновременно n раз да?


Часовой пояс GMT +3, время: 01:03.