我是一名学生,为私有(private)客户开发一个网站。在我的网页设计课上,我们被教导主要使用表单通过 action=someFile.php 将值从客户端传递到服务器。该类(class)还简要提到了使用 ajax 从客户端使用 javascript 和 jquery 传递数据,例如:
request = $.ajax({
url: "persistTestimonial.php",
type: "POST",
data: {"testimonial": testimonial},
dataType: "json"
});
我还在一家公司实习过,在那里我编写了使用 canjs for mvc 在客户端和服务器之间来回传递的 C# 服务。在 mvc 和 c# 后端的上下文中,使用上述方式编写 ajax 调用是有意义的。由于该类一直在优雅地降级,所以除了整个页面不必重新加载之外,我并没有完全看到 javascript ajax 而不是 php 表单的好处。我只是想知道什么是最佳实践以及到底有什么好处。
请您参考如下方法:
ajax的主要好处是不重新加载页面,对于服务器和客户端来说是双赢的。
客户无需再次等待,体验流畅。想想 Facebook 应用程序,您滚动到底部,就会加载更多帖子。这比一次又一次按“下一个”等待接下来的 50 个帖子加载要好得多。但是使用 ajax,您可以获得 2 x 2。
对于服务器来说,不必一遍又一遍地发送相同的资源,这在金钱方面有很大帮助。其次,可以在客户端完成大量计算并选择下一步要做什么或去哪里......为服务器节省更多资金。
即使是通常的方式,您单击“提交”,论坛也会提交。不使用操作参数。这是古老的做法……最简单的事实。但不是很好。原因是您无法修改、验证或执行任何其他操作。至于尽快提交。因此,通常您将提交事件处理程序附加到表单,然后取消事件传播,运行检查并执行您需要执行的任何操作,然后如果满意,则手动提交它。
从服务器端来看,这确实不是什么大问题。如果它来自 ajax 或直接来自浏览器地址栏。任何请求都只是一个 http get/post 请求。
例如.. http://jsfiddle.net/9pB8s/
var form= document.getElementById('f'),
txt= document.getElementById('txt');
form.onsubmit= doStuff;
function doStuff(e) {
if (!isNaN(txt.value)) {
txt.value='Thanks for Interest!';
txt.setAttribute('readonly','readonly');
setTimeout(function(){
f.submit();
},1000);
}
return false;
}
返回 false 会取消事件的触发。但是当文本只是数字时,js 会手动提交它。添加定时器只是为了效果。






