Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.03.2013, 14:47
Новичок на форуме
Отправить личное сообщение для Ioprst Посмотреть профиль Найти все сообщения от Ioprst
 
Регистрация: 16.03.2013
Сообщений: 2

Ajax и Undo/Redo
Доброго времени суток. Есть некое клиентское приложение на javascript. Есть серверная часть: php + Mysql. Пользователи могут добавлять, изменять удалять данные. В приложении реализовано undo/redo - удаленный элемент можно восстановить и т.п. При любом действии отправляется запрос на серверную часть, и в бд пишутся измененные данные. Возникла такая ситуация: если удаленный элемент восстанавливать, удалять с большой скоростью (Undo - восстановили, Redo - удалили), соответственно создаётся больщое количество запросов к серверной части, один за другим. Из этого начинаются проблемы в бд, элемент может не удалится или возникают ошибки дублирования. Каким образов лучше отправлять запросы от клиентской часть на сервную часть, чтобы это надежно работало?
Ответить с цитированием
  #2 (permalink)  
Старый 16.03.2013, 15:01
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Ioprst
Возникла такая ситуация: если удаленный элемент восстанавливать, удалять с большой скоростью (Undo - восстановили, Redo - удалили), соответственно создаётся больщое количество запросов к серверной части, один за другим. Из этого начинаются проблемы в бд, элемент может не удалится или возникают ошибки дублирования.
Странный вывод .
Может когда количество запросов к серверу превышает максимальное количество одновременных браузера и ранее отправленные запросы сбрасываются ?
Может база не оптимизирована и не может выдержать такую нагрузку?
Может из за того , что изза возникновения ошибок при передаче, запросы отправленные позже , выполняются раньше чем отправленные ранее?

1 Не превышать максимального количества запросов -для первого случая
2 Очерёдность критична? -значит один поток использовать. Ставить в очередь. Пришел ответ от отправленного ранее , выполнить следующий из очереди
3 Критичны ошибки бд.? пункты 1, 2 и в случае прихода ответа , что произошла ошибка в базе -повторить запрос

Р.S. запрещать пользователю часто нажимать на кнопки , делать их неактивными на время после нажатия

Последний раз редактировалось dmitriymar, 16.03.2013 в 15:44.
Ответить с цитированием
  #3 (permalink)  
Старый 16.03.2013, 15:12
Новичок на форуме
Отправить личное сообщение для Ioprst Посмотреть профиль Найти все сообщения от Ioprst
 
Регистрация: 16.03.2013
Сообщений: 2

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

1 Не превышать максимального количества запросов -для первого случая
2 Очерёдность критична? -значит один поток использовать. Ставить в очередь. Пришел ответ от отправленного ранее , выполнить следующий из очереди
3 Критичны ошибки бд.? пункты 1, 2 и в случае прихода ответа , что произошла ошибка в базе -повторить запрос

Р.S. запрещать пользователю часто нажимать на кнопки , делать их неактивными на время после нажатия
Спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с AJAX Dim@ AJAX и COMET 4 16.09.2012 22:52
Вывод информации со страницы в ajax fAmOus Элементы интерфейса 4 17.07.2012 00:32
Ajax таблица gofkane Работа 1 26.09.2011 18:26
Ajax таблица gofkane Работа 0 25.09.2011 11:53
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57