09.06.2015, 09:51
|
Аспирант
|
|
Регистрация: 07.06.2015
Сообщений: 90
|
|
Javascript в новой вкладке не такой как в старой
Здорова!
Написал программку с аякс там заходим на страницу и там по таймеру каждые 2 секунды посылается на сервер аякс запрос, когда я открываю эту же программу еще в одной рядом в кладке или нескольких как мне сделать чтобы там были аналогичные данные как и те что на первой вкладке, у меня получается если сервер раз отправил одной вкладке данные, то он потом через время только отправляет другие данные. Как делать?
Короче проблема в том когда страница открыта в одной вкладке то все работает нормально, только открываю в одном браузере в двух вкладках, так сразу на одной одно показывается, а на другой другое или вообще на другой полностью зависает сценарий, как это исправить?
|
|
09.06.2015, 09:57
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,227
|
|
Сообщение от ninja2
|
как это исправить?
|
По такому "описанию" проблемы можно посоветовать только принесение жертвы великому духу Ajax!
|
|
09.06.2015, 10:40
|
Аспирант
|
|
Регистрация: 07.06.2015
Сообщений: 90
|
|
Сообщение от ksa
|
По такому "описанию" проблемы можно посоветовать только принесение жертвы великому духу Ajax!
|
В общем по порядку, открываем сайт, данные подгрузились с помощью аякса и добавились в блок, затем через 3 секунды идет запросс на сервер и если приходят данные, то они снова в блок подгружаются.
Затем мы во второй вкладке в этом браузере открываем этот же сайт и на нем мы не видим тех данных что были в первой, а нужно чтобы сайт в одном браузере отображался одинаково.
|
|
09.06.2015, 10:41
|
Аспирант
|
|
Регистрация: 07.06.2015
Сообщений: 90
|
|
У меня получается в одной вкладке одного и того же сайта аякс подгрузил например 10 строк, открываем этот же сайт в соседней вкладке, а там нету этих 10 строк, там 0 строк. Как сделать чтобы во всех вкладках одинаково отображался сайт?
Мб. данные что подгружаются сохранять в javsScript куку, а затем когда новая вкладка открывается типо перезагрузка страницы вызвать раз функцию которая обновит эту куку или хз. как сделать.
Та проблема еще в том что у меня функция аякса вызывается по таймеру и когда открыты две и больше вкладок в браузере, то работает она всего в одной из вкладок, в соседних вкладках просто ничего не выводится, никакой активности, хотя идет запрос аякс непрерывно через 2 секунды и должны по идее обновлятся данные, а че не обновляются хз. Мб. жаваскрипт как то работает не понятно?
Последний раз редактировалось ninja2, 09.06.2015 в 10:45.
|
|
09.06.2015, 11:05
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,227
|
|
Сообщение от ninja2
|
Мб. жаваскрипт как то работает не понятно?
|
Дело было не в бабине... (с)
|
|
09.06.2015, 11:10
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,227
|
|
Сообщение от ninja2
|
У меня получается в одной вкладке одного и того же сайта аякс подгрузил например 10 строк, открываем этот же сайт в соседней вкладке, а там нету этих 10 строк, там 0 строк. Как сделать чтобы во всех вкладках одинаково отображался сайт?
|
Смотри какие запросы отправляются... Что им отвечают... И что потом с этим делается...
И начинай делать тестовый пример. Потому как пиши, не пиши - ясности это не добавит.
|
|
09.06.2015, 11:55
|
Аспирант
|
|
Регистрация: 07.06.2015
Сообщений: 90
|
|
Сообщение от ksa
|
Смотри какие запросы отправляются... Что им отвечают... И что потом с этим делается...
И начинай делать тестовый пример. Потому как пиши, не пиши - ясности это не добавит.
|
У меня вообще получается там при одном аякс запросе вызывается функция которая добавляет данные из одной таблицы в другую и она как бы раз вызывается и больше не вызывается, щас открыл этот сайт в двух браузерах и каким то макаром получается что данные дублируются, то есть эта функция два раза вызывается. ппц.
ЕЕ нужно наверно по крону вызывать или хз. Та функция что дубли делает она раз вызывается когда сессия пользователя есть и когда в БД flag в 0 установлен, то тогда идет вызов этой функции. Получается одновременно эта функция вызывается в двух браузерах, эта функция изменяет в БД флаг в 1 и видимо она не успевает изменить этот флак до вызова в другом браузере.
Оно через раз раз дубли добавляются, а раз по одному разу добавляется. ппц что ж делать?
Да похоже крон нужно будет использовать для функции. без крона наверно функцию по условию в двух браузерах сможет 2 раза вызватся, если сделать одновременно запросс?
|
|
09.06.2015, 11:58
|
Аспирант
|
|
Регистрация: 07.06.2015
Сообщений: 90
|
|
От мы создали функцию допустим f() эта функция когда вызывается изменяет в БД столбец flag с 0 на 1 и добавляет 3 записи допустим, а перед ее вызовом проверяется условие если flag=0 то мы вызываем функцию f()
Она вообще должна раз вызватся, делаем запрос одновременно из двух браузеров и что проверяется условие и что получается у нас функция вызовется 2 раза и в БД появятся дубли. Так что получается через аякс функцию нельзя всего один раз вызвать???? Получается через аякс функция может случайно вызватся одновременно n раз да?
|
|
09.06.2015, 12:10
|
Аспирант
|
|
Регистрация: 07.06.2015
Сообщений: 90
|
|
так что по крону запускать скрипт получается лучше чем через javaScript. Имеется введу скрипт который изменяет БД по условию из этой БД. У меня дубли создаются если из двух браузеров запускаю программу, а если пользователей 100 будет из 100 компов, то 100 дублей появится . Как делать?
Правильно крон использовать для скриптов которые изменяют данные в БД.
А JavsScript аякс только использовать для получения запроса да или для определенного юзера, например мы передаем идентификатор пользователя и меняем его данные.
А в моем случае у меня при аяксе на сервере должно сработать условие и тогда данные меняются не для всех пользователей. Так что может похоже одновременно вызватся функция которая изменит данные и условия. У меня получается может, значит крон нужно использовать чтобы раз вызвать функцию которая изменит БД.
|
|
09.06.2015, 12:57
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,227
|
|
ninja2, все, что ты пытаешься описать словами не проблема JS... Это все от твоего не правильного понимания взаимодействия с сервером.
P.S.
Кто такой "Крон"?
Очередной великий дух, которому тебе придется приносить жертву?
|
|
|
|