所以我是一名为私人客户开发网站的学生。在我的网页设计课上,我们被教导主要使用表单通过action=someFile.php
将值从客户端传递到服务器。该类还简要地提到了使用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应用程序,你滚动到底部,会加载更多帖子。。这比一次又一次地按下next等待下一个50个帖子加载要好得多。。但是使用ajax,您可以获得2乘2。
对于服务器来说,不必一次又一次地发送相同的资源在资金方面有很大帮助。其次,可以在客户端进行大量计算,并选择下一步要做什么或去哪里。。为服务器节省更多的钱。
即使是通常的方式,你点击提交和论坛提交。未使用操作参数。这是一种古老的做法。。最简单的事实。但不是很好。原因是您无法修改、验证和执行任何其他操作。至于尽快提交。所以通常你会将提交事件处理程序附加到表单中,然后取消事件传播,运行检查并做任何你必须做的事情,如果满意,然后手动提交。
从服务器端来看,这真的没什么大不了的。如果它是通过ajax或直接从浏览器地址栏来的。任何请求都只是一个http获取/发布请求。
例如。。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会手动提交。添加计时器只是为了达到效果。