客户端或服务器端处理?

Nic*_*ick 16 javascript php jquery codeigniter dynamic

所以,我是动态网页设计的新手(我的网站大多是静态的,有些PHP),我正在尝试学习网页开发的最新技术(似乎是AJAX),我想知道,如果你要传输大量数据,最好是在服务器上构建页面并将其"推送"给用户,还是更好地"拉"所需数据并使用JavaScript在客户端创建HTML?

更具体地说,我使用CodeIgniter作为我的PHP框架,使用jQuery for JavaScript,如果我想向用户显示数据表(动态),使用CodeIgniter格式化HTML会更好吗(创建表格,将CSS类添加到元素等.),或者更好的方法是使用JSON提供原始数据,然后使用jQuery将其构建到表中?我的直觉说客户端,因为它可以节省带宽,并且页面可能会加载所有这些浏览器现在所有的新JavaScript优化,然而,对于不使用JavaScript的人来说,网站会破坏...

谢谢您的帮助

Ste*_*ven 9

恭喜您搬到动态网站!我会说你必须满足以下条件才能进行客户端布局(不用说你应该总是做过滤数据库查询和控制访问权限服务器端):

  • 客户端浏览器和连接功能可以满足绝大多数用例的要求
  • SEO和移动/遗留浏览器降级不是一个大问题(当您综合HTML服务器端时更容易)

即使这样,做客户端布局也会使测试变得更加困难.它还会产生相当麻烦的同步问题.使用加载部分内容的AJAX站点,如果页面的一部分搞砸了,您可能永远不会知道,但是通过常规的服务器端组合,每次请求都会重新加载整个页面.它还为错误/超时处理,会话/ cookie处理,缓存和导航(浏览器后退/前进)添加了额外的挑战.

最后,如果有人想与朋友分享链接或为自己添加链接,那么制作perma-URL有点困难.我在这里的博客文章中查看了一个解决方法,或者您可以使用一个突出的"固定链接"按钮来显示动态呈现的永久链接.

总的来说,特别是在开始的时候,我会说更合适的kosher,更好的支持,更多的tutorialed,传统的方法来整合HTML服务器端.然后在这里和那里浸入一些AJAX(可能从表单验证或自动完成开始),然后继续前进.

祝好运!


Jos*_*h K 5

这是好做服务器端繁重。

在CodeIgniter中,您将创建一个视图,遍历表中的所有行,并添加类或您需要的其他任何内容。用Java语言完全没有理由这样做。

Javascript是一种不幸的语言,语法很不幸。到底为什么要加载页面,然后发出AJAX调用来加载一些JSON对象以推送到表中,这超出了我的范围。没有理由这样做。

Javascript(和jQuery)用于最终用户增强。使事物滑动,闪烁,消失!即使在负载最轻的情况下,它也不用于数据处理。最终用户的体验很糟糕,因为当您拥有一台功能强大甚至专门为此设计的服务器时,您将依靠他们的机器来处理所有数据。

  • @Josh K,前端技术确实是我的最爱。我也一直在与服务器一起工作,但是OP使用者将如何学习,如果他们听到的都是与您在答案和这些评论中呈现的相同的过时信息。JS不仅用于使事物“滑动”闪光或弹出,还可以用于更多用途。但是我怀疑您不明白这一点,因为您认为:“ Java语言是一种不幸的语言,语法很不幸。” (7认同)
  • @Josh K,您误解了我的评论。过时的信息是您做出的这些声明:“根本没有理由这样做”,“ **不要使用JavaScript格式化HTML。**”,“它不适用于甚至最轻的负载。” ...所有这些陈述从根本上来说都是不正确的,令人误解的,而且正如我之前所说的过时的。 (2认同)