AJAX может избежать рендеринга всей страницы, что хорошо ™.
Вы точно знаете, что написание AJAX-кода, работающего с различными реализациями браузера, приведет к созданию спагетти-JavaScript-кода, поэтому я советую выравнивать различия с помощью хорошей библиотеки JavaScript. Я выбрал jQuery , потому что его легко освоить и интересно использовать, если вы уже знаете селекторы CSS2. Там есть и другие хорошие библиотеки YUI, Prototype, MooTools, просто выберите одну.
С помощью jQuery вы можете вызывать вызов AJAX различными способами, включая эту простую версию:
$.post( url, parameters, callback, returned_type );
, где
- url : URL-адрес ресурса на стороне сервера, который проверяет ввод
- параметры : объект, свойства которого сериализованы в закодированные параметры
- callback : обратный вызов вызывается после завершения запроса (тело ответа и состояние передаются обратному вызову в качестве первого и второго параметра).
- type : строка типа
'html'
, 'text'
, 'xml'
, 'json'
, которая указывает, какого ответа ожидать от сервера.
Обычно для отправки формы необходимо подключить обработчик событий к кнопке отправки: обработчик событий захватывает событие отправки, давая возможность проверить значения на стороне клиента и отправить их с помощью вызова AJAX.
$( '#my_form' ).submit( function( event ) {
// Prevent classic submission that ends with whole page render
event.preventDefault();
// Here iterate through form elements and do a client-side check
...
$ajax.post( ... );
}
Я могу понять, что мой пример упрощен, но этот шаблон довольно распространен: hijack-submit-event-and-do-it-another-way.
Другие примеры (в том числе с мощными плагинами jQuery) вы найдете в главе 11 jQuery Cookbook , озаглавленной Улучшения HTML-форм с помощью плагинов .