Какой подход будет более эффективным для сохранения списка перетаскивания на сервере; постоянное обновление ajax против кнопки ручного сохранения? - PullRequest
0 голосов
/ 07 марта 2019

Итак, я построил конструктор перетаскивания для своего клиента с помощью jQuery UI. Форма в основном состоит из множества элементов, и клиент будет постоянно добавлять, переупорядочивать, удалять элементы из списка. У меня просто одна проблема с подходом, который я должен использовать, чтобы сохранить список на стороне сервера.

А) Должен ли я просто прикрепить событие ajax для обновления сервера при каждом изменении интерфейса сортировки. У jQuery UI есть событие для этого. Но это может означать десятки запросов ajax за очень короткое время.

B) Если я просто добавлю кнопку с надписью «Сохранить изменения», и клиент будет использовать ее всякий раз, когда он будет доволен заказом, нажмите кнопку, и изменения будут сохранены на сервере. Менее аккуратный / красивый, чем А), но говоря о производительности. Вы предлагаете, чтобы это решение было практически лучше?

Я благодарен за любой вклад, так как теперь я действительно не уверен, какой подход выбрать.

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Момент задержки запроса ajax каждый раз, когда пользователь перетаскивает что-то на несколько секунд. Таким образом, вы сохраните все изменения, не заставляя пользователя делать второе взаимодействие (нажав кнопку), а также вы не будете отправлять избыточные запросы. Имейте в виду, что таким образом вы должны предотвратить закрытие окна браузера пользователем, вы можете сделать это, используя onBeforeUnload . Конечно, вы могли бы использовать веб-сокеты, как упоминалось ранее, но в некоторых ситуациях вы не можете этого сделать.

0 голосов
/ 07 марта 2019

Я бы выбрал вариант B), так как это было бы безопаснее и давало бы меньше накладных расходов.Безопаснее, что означает, что пользователь не сможет случайно защитить то, что ему не нужно.

Вариант C) будет паутиной.Вы можете создать двунаправленное соединение между клиентом и сервером, которое будет содержать весь сеанс, который пользователь редактирует в списке.Это помешает вам отправлять много запросов на сервер.Хорошая PHP-библиотека для веб-сокетов - Ratchet: http://socketo.me/

...