我是一名学生,为私有(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 会手动提交它。添加定时器只是为了效果。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!