【问题标题】:using jquery vs php to reduce load使用 jquery vs php 来减少负载
【发布时间】:2009-06-10 17:09:35
【问题描述】:

我正在设置一个注册页面,我主要使用 PHP 来验证数据。

我已经意识到使用客户端驱动的语言进行某些验证将减少服务器的工作量。 我对 jquery 了解不多,但我正在寻找能够确定电子邮件正确语法的代码(例如,一个“@”并且没有有趣的字符)。

此外,jquery 中是否有一个函数,每次在某个事件(点击时,keyup 时)之后,它都会执行一个 php 脚本并在不重新加载的情况下显示结果?我正在寻找可以让我向用户提供有关更复杂功能的快速反馈的东西(例如查找电子邮件的 DNS 以确保其真实性,检查用户名是否存在等。)

有人可以指点我这方面的资源吗?

【问题讨论】:

    标签: php jquery ajax


    【解决方案1】:

    应该注意的是,客户端验证永远不应该被依赖,而应该存在以增强用户体验。您必须在服务器上执行验证,因为很容易绕过客户端代码。

    【讨论】:

    • 绝对正确,你永远不应该没有服务器端验证。但是,拥有客户端通常可以更轻松地向用户指出错误,并使页面对使用的响应更快。
    • +1 never ever ever 依赖任何来自黑暗面的东西。它不能被信任。
    • 值得注意的是,如果您在使用数据验证例程时遇到问题/性能下降,您应该分析这些例程并找出问题所在,因为验证通常不是一项“昂贵”的任务全部。
    【解决方案2】:

    您可以在这里找到一个使用非常广泛的 jquery 验证插件:

    http://plugins.jquery.com/project/validate

    它包含许多内置的“通用”验证规则,您可以添加自己的。默认情况下有电子邮件。

    但请始终记住始终在服务器端进行验证。您可以添加客户端验证以提高响应速度,但请记住,恶意用户可以轻松绕过任何 javascript 验证。

    【讨论】:

      【解决方案3】:

      使用 TM 提供的答案 - 验证插件并始终验证服务器端。

      如何做一个点击事件,ajax到服务器然后显示消息:

      $("a.dnscheck").click(function() {
      
          $.get('http://blah.com/dnscheck.php', 
                 { 'email' : $("input.email").val() }, 
                 function(data) {
                     //called on ajax response
                     if(data == 'valid') {
                         //update dom with ok message
                     } else {
                         //update dom with bad email message
                     }
      
                 });
      });
      

      如果您想要更复杂的内容,请参阅http://docs.jquery.com/Ajax

      【讨论】:

        【解决方案4】:

        您需要同时使用 PHP 和 js 进行验证。我看到一些地方/人还在使用iE5,在这种情况下我不会相信js。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-21
          • 1970-01-01
          • 2011-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多