Я обычно использую и , где полное обновление страницы после обычной <form>
отправки работает, но если JavaScript включен, вы подключаетесь к событию отправки и переопределяете его.Это дает вам причудливый AJAX, если это возможно, и постепенную деградацию, если это не так.
Вот краткий пример (jQuery для краткости):
<form type="POST" action="myPage.htm">
<input type="text" name="UserName" />
<button type="submit">Submit me!</button>
</form>
Если у пользователя нет JavaScript, нет проблем сФорма работает.Если они делают (и большинство из них), я могу сделать это:
$(function() {
$("form").submit(function() {
$.ajax({
url: this.action,
type: this.type,
data: $(this).serialize(),
success: function(data) {
//do something with the result
}
});
});
});
Это допускает постепенную деградацию, которая может быть очень важной (я полагаю, зависит от вашего отношения / клиентской базы),Я стараюсь не переворачивать пользователей без JavaScript, или если с моей стороны происходит ошибка JavaScript, и вы можете видеть сверху, что это можно сделать достаточно просто / достаточно универсально, чтобы не причинять боль.
Если выЛюбопытно, что на сервере вы можете проверить заголовок X-Requested-With
в большинстве библиотек и, если он присутствует, вернуть только <form>
или какое-либо сообщение об успешном выполнении (поскольку это был запрос AJAX), если его нет, тогда предположитеполная загрузка страницы и отправка целиком.