我正在尝试为我的网站构建一个用户友好的用户界面。现在的标准是使用客户端以及表单的服务器端验证。对?我想知道我是否可以放弃客户端验证,并且仅仅依靠服务器端。验证将在模糊时触发,并将使用ajax。 为了领先一步,我还计划在数据库中保存特定字段,如果它已被验证为正确。像实时表单更新一样。
你知道,我对编程完全陌生。所以我不知道这种方法是否可以实际运作。我的意思是,会有速度或连接问题吗?如果流量高,它会在服务器上收费吗?该网站会降低HTTPS的速度吗? 那里有没有实现过这个的网站?
另外,我看到它的方式,我需要为每个字段单独的PHP脚本!有更短的方式吗?
答案 0 :(得分:2)
你想做的事情是非常可行的。实际上,如果您将JSF与ICEfaces或PrimeFaces等丰富的组件框架一起使用,那么这就是您可以获得的开箱即用功能。
与所有网络技术一样,能够使用一种语言进行操作意味着您可以与其他人一起使用。我已经编写了类似于您手动用PHP描述的表单。它是一项大量的工作,当您第一次开始使用时,每个字段支持表单的一个脚本肯定是最简单的。随着您的进步,您将发现如何在请求中包含字段名称,并将其备份到每个表单的Ajax交互的一个脚本。你当然可以进一步减轻负担。
PHP框架可能会使这个过程变得不那么繁重,但是我还没有使用它们,并建议你最初避免它们,直到你得到它们的方位。像Cake或Rails这样的系统提供的神奇功能非常有用,但您必须了解权衡和基础技术,否则很难在其抽象的基础上构建健壮的系统。
计算服务器收费并不直观。一方面,处理大型提交比处理小型提交更有用。可能是您正在用一些小的请求替换一个大的请求以获得净收益。它将取决于您必须对每个表单字段执行的工作类型。例如,自动完成比检查已经使用的用户名要昂贵得多,这比(例如)验证某些字符串实际上是数字或其他明显的验证更昂贵。
由于您不想重复自己,将所有验证放在一边或另一边都很诱人,但无论哪种方式都有权衡,服务器端验证确实如此会慢于客户端。但是,客户端验证的速度无法替代它如果依靠它会引入安全问题的事实。所以我的一般方法是在服务器端进行验证,如果我有时间,我也会将它添加到客户端,以便提高响应能力。 (事实上,我实际上是在数据库中尽可能地进行验证,然后是服务器端代码,然后是客户端,因为这样即使我的应用程序爆炸,我也没有数据无效坚持担心)。
过去,您可以期望您的网站在SSL下的运行速度提高1/3。我没有最新的数字,但总是比未加密的更贵。它只是更多的工作。 SSL设置也不是很有趣。我工作过的大多数网站都将整个网站放在SSL下,或者将网站打成某种加密的购物车,剩下的就是其余部分。我不会花费过多的精力去试图优化它。如果您需要加密,请使用它并继续您的一天。
在游戏阶段,我不会因性能而失去太多睡眠。由于您是全新的,专注于学习过程,因此请尝试实施您认为令人满意并且旨在改进的功能。很容易对性能有所了解,但是你不会有长时间挤压你的那种流量,除非半个星球想要购买你的产品并且你的网站是非常沉重,你的主人非常虚弱。当它出现时,你应该对你的代码进行分析,找到你做了太多工作的地方并解决了这个问题,而且如果你尝试设计一个高性能系统,你会得到更多。你还没有足够的数据来做到这一点。如今,大多数服务器都处于相当重的负载之外 - 你很可能在不久的将来不会有每秒数百个访问者,并且需要花费20美元以上才能降低20美元。 VPS运行一个相当简单的PHP站点。考虑到一个访问者每秒可以达到大约80,000次点击,每天需要800万次点击才能达到100次/秒。除非你做了一些愚蠢的事情,否则你不需要一秒钟来渲染页面。当我们学习时,我们都会做几次。 :)
祝你好运!