AJAX with javascript vs. Php Form


AJAX with javascript vs. Php Form

所以我是一名为私人客户开发网站的学生。在我的网页设计课上,我们被教导主要使用表单通过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会手动提交。添加计时器只是为了达到效果。