2010-02-23 4 views
2

У меня есть HTML-страница, на которой по всей странице размещена таблица с бесчисленным количеством ячеек. В деталях рабочий день 24-часовой рабочий день делится на 30-минутную ячейку, в среднем 48 клеток в строке на 100 человек. Каждая ячейка на клике открывает всплывающее окно, которое по отправке отправляет всю страницу снова. Это использовалось с возрастом, но новый клиент хочет, чтобы это произошло после того, как все модификации случайных всплывающих окон завершены (все изменения должны произойти только один раз). Это в основном написано в java, javascript с пользовательской структурой. Мой вопрос - вот что такое двойной подход к подобной ситуации. Большинство общих ответов, которые я исследовал, - это реализация AJAX, но я чувствую, что некоторые настройки внутри javascript могут выполнить это требование.Избегайте слишком большого количества отправлений на страницу

+0

Что происходит во всей передаче всей страницы? Конечно, у вас может быть несколько всплывающих окон для всех настроек данных, а затем «Сохранить» прямо в конце, чтобы отправить всю оптовую продажу всего лишь один раз? – Fenton

+0

Без использования AJAX вам нужно будет отправить все 100 * 48 значений в хранилище, и серверу придется разработать, какие из них были изменены, вы не хотите этого делать. –

ответ

1

Без AJAX единственное решение, о котором я могу думать, не представляет форму при каждом изменении одного значения, но имеет кнопку «Сохранить», которая сохраняет их все сразу.

Однако AJAX будет лучшим решением. Все, что вы делаете, - это предоставить на сервер количество данных, которое будет обрабатываться, и все, пока пользователь останется на текущей странице.

Mozilla's tutorial, вероятно, лучший по этому вопросу, если вы используете простой Javascript. Различные структуры, такие как jQuery, имеют действительно простые встроенные функции.

0

AJAX определенно будет лучшим решением для этого. Но, видя, как вы не решаются сделать рерайт, два пути улучшения приходят на ум:

  • Изменение архитектуры таблицы, так что не каждое изменение требует представить - это должно быть возможно изменить как многие полей по мере необходимости, а затем сохранить их все с помощью одного действия submit. Это зависит от структуры таблицы, тем не менее, и от того, как работает скрипт сохранения - может потребоваться переделка, трудно сказать, не зная большего.

  • Создайте невидимую IFRAME, дайте ей имя и установите для всех атрибутов <form> атрибут target этому IFRAME. Там все равно будет действие отправки для каждого всплывающего окна, , но оно будет отправлено в невидимый iframe, в то время как страница не нужно перезагружать, и пользователь может продолжить работу. Это не очень красивое решение, но может выполнить эту работу, по крайней мере, до тех пор, пока не будут загружены файлы.

1

Не обязательно использовать XML. Быстрый и грязный метод для данных, для которых вы знаете формат, и который довольно схож, - это просто передавать данные взад и вперед, используя объект XMLHTTPRequest. Вы можете обнаружить изменения отдельных ячеек с помощью Javascript и событий для хранения измененных ячеек и их нового содержимого. Создайте функции для передачи данных на страницу сервера, которая обновляет базу данных.

Это может быть очень быстро. В одном приложении, над которым я работал, HTML был 100k за обновление, и это упало до 5k или меньше, когда обновлялись только данные.

Смежные вопросы