форум vBSupport.ru > vBulletin > Вопрос — Ответ
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Regron
Простоузер
Default Дублируются сообщения
0

Поставил 4.0.4, голую без модов и хаков.
Так вот у некоторых пользователей дублируются сообщения. Т.е. при отправке одного, появляется два одинаковых. И самое главное такое происходит не у всех, а только у нескольких.
Порылся по поиску, нашел несколько похожих проблем, но решения так и не увидел.
Че делать-то? Бегать за пользователями подтирать дубли уже надоело.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
netwind
Гуру
 
netwind's Avatar
Default
0

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

По какой же причине браузеры посылают несколько запросов? в последнее время участилось это. По-моему на firefox 10
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
0

netwind, Сам с таким сталкиваюсь, но заметил, чем больше сообщение, тем вероятнее возникновение дубля.
Например пост в 1 строку, идет без дубля, а вот пост с 4 строками скорее всего вызовет дублирование, правда я зная это, когда получаю предупреждение о том, что форум не принимает посты чаще 0 сек, отказываюсь от публикации. В результате сообщение только одно.
 
 
netwind
Гуру
 
netwind's Avatar
Default
0

SMak044, а есть какие-нибудь хаки, которые сложную работу по проверке содержимого сообщения при отправке делают? блокировка ссылок и тд ?
Чем больше во времени растянут процесс создания сообщения, тем больше вероятность неправильной работы системы исключения дубликатов в vb.
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
0

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

SMak044 добавил 27.02.2012 в 16:06
Вот и сейчас я отправлял сообщение и снова выпало сообщение о слишком скорой отправке повторного сообщения.
Сейчас попробую в firebug глянуть в чем проблема.

SMak044 добавил 27.02.2012 в 16:48
Глянул, по какой то причине первая отправка сообщения вызвала ошибку и прервалась, а вот вторая прошла удачно.
То есть скорее всего мой браузер не получил ответ, что сообщение было отправлено и повторно выслал данные.
В общем происходит так:
  1. Сообщение отправляется
  2. Браузер ждет ответа от скрипта
  3. То ли получает в ответ ошибку, то ли отбивается по времени
  4. Запускает повторно то же запрос. Но так как в этот момент происходит проверка на одинаковость и фактически не происходит запись сообщения в бд, скрипт отрабатывает нормально, но выводит сообщение о невозможности разместить сообщение чаще 30 секунд.

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

Last edited by SMak044 : 02-27-2012 at 05:48 PM. Reason: Добавлено сообщение
 
 
netwind
Гуру
 
netwind's Avatar
Default
0

Quote:
Originally Posted by SMak044 View Post
То есть скорее всего мой браузер не получил ответ, что сообщение было отправлено и повторно выслал данные.
а зачем он это делает и почему не выводит ошибку? ты точно сам не нажимал на Reload ?
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
0

netwind, В том то и дело, что нет. Ничего не нажимал.
В firebug ошибка есть, скрипт выдает прерывание

SMak044 добавил 27.02.2012 в 18:27
пробую еще раз
вот получилось



Сразу поле этого идет переход на предупреждение о не возможности отправлять сообщение чаще чем 30 секунд....

Last edited by SMak044 : 02-27-2012 at 07:46 PM. Reason: Добавлено сообщение
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 01:54 AM.


Powered by vBulletin® Version 3.5.7
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...