У меня есть HTML-страница, на которой по всей странице размещена таблица с бесчисленным количеством ячеек. В деталях рабочий день 24-часовой рабочий день делится на 30-минутную ячейку, в среднем 48 клеток в строке на 100 человек. Каждая ячейка на клике открывает всплывающее окно, которое по отправке отправляет всю страницу снова. Это использовалось с возрастом, но новый клиент хочет, чтобы это произошло после того, как все модификации случайных всплывающих окон завершены (все изменения должны произойти только один раз). Это в основном написано в java, javascript с пользовательской структурой. Мой вопрос - вот что такое двойной подход к подобной ситуации. Большинство общих ответов, которые я исследовал, - это реализация AJAX, но я чувствую, что некоторые настройки внутри javascript могут выполнить это требование.Избегайте слишком большого количества отправлений на страницу
ответ
Без AJAX единственное решение, о котором я могу думать, не представляет форму при каждом изменении одного значения, но имеет кнопку «Сохранить», которая сохраняет их все сразу.
Однако AJAX будет лучшим решением. Все, что вы делаете, - это предоставить на сервер количество данных, которое будет обрабатываться, и все, пока пользователь останется на текущей странице.
Mozilla's tutorial, вероятно, лучший по этому вопросу, если вы используете простой Javascript. Различные структуры, такие как jQuery, имеют действительно простые встроенные функции.
AJAX определенно будет лучшим решением для этого. Но, видя, как вы не решаются сделать рерайт, два пути улучшения приходят на ум:
Изменение архитектуры таблицы, так что не каждое изменение требует представить - это должно быть возможно изменить как многие полей по мере необходимости, а затем сохранить их все с помощью одного действия submit. Это зависит от структуры таблицы, тем не менее, и от того, как работает скрипт сохранения - может потребоваться переделка, трудно сказать, не зная большего.
Создайте невидимую IFRAME, дайте ей имя и установите для всех атрибутов
<form>
атрибутtarget
этому IFRAME. Там все равно будет действие отправки для каждого всплывающего окна, , но оно будет отправлено в невидимый iframe, в то время как страница не нужно перезагружать, и пользователь может продолжить работу. Это не очень красивое решение, но может выполнить эту работу, по крайней мере, до тех пор, пока не будут загружены файлы.
Не обязательно использовать XML. Быстрый и грязный метод для данных, для которых вы знаете формат, и который довольно схож, - это просто передавать данные взад и вперед, используя объект XMLHTTPRequest. Вы можете обнаружить изменения отдельных ячеек с помощью Javascript и событий для хранения измененных ячеек и их нового содержимого. Создайте функции для передачи данных на страницу сервера, которая обновляет базу данных.
Это может быть очень быстро. В одном приложении, над которым я работал, HTML был 100k за обновление, и это упало до 5k или меньше, когда обновлялись только данные.
- 1. Избегайте слишком большого количества отливок
- 2. Избегайте большого количества настраиваемых EventArgs?
- 3. Списки Python - избегайте записи слишком большого количества файлов списка
- 4. отображение слишком большого количества рельсов
- 5. Извлечение слишком большого количества байтов
- 6. Влияние большого количества изображений на веб-страницу
- 7. Избегайте копирования кода для большого количества кнопок
- 8. Обработка слишком большого количества вызовов для popMatrix
- 9. Selenium-Cucumber Открытие слишком большого количества окон
- 10. Недостаток использования слишком большого количества ключевых слов
- 11. Следствие слишком большого количества неиспользуемых заблокированных потоков
- 12. Создание слишком большого количества потоков в java
- 13. Сайт достигнут слишком большого количества URL-адресов.
- 14. Использование слишком большого количества просмотров в android
- 15. Продолжение выбора слишком большого количества столбцов
- 16. Окончание слишком большого количества объектов (многоуровневый дизайн)
- 17. Приложение Tomcat Создание слишком большого количества журналов
- 18. Сплит-контейнеры без слишком большого количества HWND
- 19. Ошибки относительно слишком большого количества аргументов
- 20. Наличие слишком большого количества файлов изображений
- 21. Использование слишком большого количества выходов хорошая практика?
- 22. Предотвращение слишком большого количества LoadLibrary/FreeLibrary
- 23. php file_get_contents загрузка слишком большого количества данных
- 24. Использование слишком большого количества в bootstrap 4
- 25. Как избежать слишком большого количества объединений?
- 26. Как избежать слишком большого количества сеансов?
- 27. Остановить верблюд после слишком большого количества попыток
- 28. Как избежать использования слишком большого количества && и ||
- 29. Ошибка при получении слишком большого количества символов.
- 30. Пакет SSIS Вывод слишком большого количества столбцов
Что происходит во всей передаче всей страницы? Конечно, у вас может быть несколько всплывающих окон для всех настроек данных, а затем «Сохранить» прямо в конце, чтобы отправить всю оптовую продажу всего лишь один раз? – Fenton
Без использования AJAX вам нужно будет отправить все 100 * 48 значений в хранилище, и серверу придется разработать, какие из них были изменены, вы не хотите этого делать. –