【问题标题】:AJAX with javascript vs. Php FormAJAX with javascript vs. Php Form
【发布时间】:2014-04-28 03:34:31
【问题描述】:

所以我是一名在为私人客户开发网站的学生。在我的网页设计课上,我们被教导主要使用表单通过action=someFile.php 将值从客户端传递到服务器。该类还简要提到了使用 ajax 从客户端使用 javascript 和 jquery 传递,使用类似:

request = $.ajax({
        url: "persistTestimonial.php",
        type: "POST",
        data: {"testimonial": testimonial},
        dataType: "json"
    });

我还在一家公司实习,当时我正在编写 c# 服务,在客户端和服务器之间使用 canjs for mvc 来回传递。在 mvc 和 c# 后端使用上述方式编写 ajax 调用的上下文中是有意义的。由于类竖琴优雅降级我不完全看到 javascript ajax 而不是 php 表单的好处,除了整个页面不必重新加载。我只是想知道什么是最佳实践以及究竟有什么好处。

【问题讨论】:

  • 如果你还没有读过关于 AngularJS 的文章,你可能会改变主意。
  • angularjs 是高级的,应该先学基础。否则他会永远卡下去。
  • @NabilKadimi 我读过关于 Angular 的文章,但我正在寻找更多概念性的东西

标签: javascript php jquery ajax


【解决方案1】:

ajax 的主要好处是不会重新加载页面,这对服务器和客户端都是双赢的。

客户不必再等待,体验是流动的。想想 Facebook 应用程序,您滚动到底部并加载更多帖子..这比一次又一次地按下一步等待下一个 50 个帖子加载要好得多..但是使用 ajax 你可以得到 2 乘 2。

对于服务器,不必一遍又一遍地发送相同的资源在金钱方面有很大帮助。其次,可以在客户端完成大量计算并选择下一步做什么或去哪里......节省服务器更多的钱。

即使是通常的方式,您点击提交和论坛提交。不使用 action 参数。这是这样做的古老方式..最简单的真实。但不是很好。原因是您无法修改、验证和执行其他任何操作。至于尽快提交。所以通常你将提交事件处理程序附加到表单然后取消事件传播,运行检查并做你必须做的任何事情然后如果满意然后手动提交它。

从服务器端来看,这真的没什么大不了的。如果它来自 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 会手动提交它。添加定时器只是为了效果。

【讨论】:

  • 有什么方法可以详细说明第三段中关于操作参数的含义以及更好的方法。另外,附加事件处理程序是指将javascript事件处理程序附加到表单吗?这是否会阻止它进行 html 表单调用?感谢您的回答填补了课堂上的空白,但如果您能详细说明一下
猜你喜欢
  • 1970-01-01
  • 2019-01-18
  • 2014-01-20
  • 2014-09-04
  • 2014-10-31
  • 2020-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多