通常当我放在一起动态生成的HTML标记,我一直在使用PHP来存储信息,然后通过循环创建页面上的元素。一个例子是导航;创建一个对象数组,然后遍历它们以回显标记。在开发或维护过程中,我可能不得不做很小的(或主要的)更改,这对我有很大的帮助。PHP VS JavaScript进行动态HTML页面
最近我一直在想我是否应该使用JavaScript来做到这一点。原理相同,但使用addElement。
只是想得到一些意见,优点,缺点,PHP VS爵士,搜索引擎优化的考虑,等等
谢谢乡亲!
通常当我放在一起动态生成的HTML标记,我一直在使用PHP来存储信息,然后通过循环创建页面上的元素。一个例子是导航;创建一个对象数组,然后遍历它们以回显标记。在开发或维护过程中,我可能不得不做很小的(或主要的)更改,这对我有很大的帮助。PHP VS JavaScript进行动态HTML页面
最近我一直在想我是否应该使用JavaScript来做到这一点。原理相同,但使用addElement。
只是想得到一些意见,优点,缺点,PHP VS爵士,搜索引擎优化的考虑,等等
谢谢乡亲!
这不是一个或其他类型的情况;一般来说你需要做两个。
做它的客户端可能会慢一些,因为服务器仍然需要找出所有的数据,但客户需要以使其;这将涉及多个请求(很可能),并且DOM操作很慢(特别是在较旧的浏览器上)。
如果SEO是你关心的事情很简单:JS没有编入索引。
也有UI的问题:如果未启用JS,JS无依赖的东西会加载。
做它的客户端是指:
在决定是否应该做一些客户端,而不是服务器端,作为一个经验法则问自己两个问题:
最好的做法是产生在服务器端进行必要的标记。原因包括:
SEO:大多数爬虫机器人不会解析Javascript,所以他们会跳过任何关键的东西,你用addElement生成。
无障碍:您的网站应该基本功能没有JavaScript。考虑那些可能在Kindles,老黑莓,诺基亚或其他带数据的功能手机上浏览您的网站的人。他们不需要所有奇特的风格和效果,但他们至少应该能够绕过你的网站。
一致性: JS可以添加另一个级别的跨浏览器可变性。为什么依靠客户端渲染必要的标记?做服务器端。
当然,这个建议可以,如果你正在开发一个全JS桌面应用程序或使用类似的Sencha Touch框架内采取大步。
一种可能性是检测什么样的用户正在浏览您的网站:
如果它是一个机器人:解析在服务器端,你可能只是输出由机器人所需要的,不图形化的东西,...
如果它是一个移动:显示为手机优化的版本,使用类似煎茶触摸,查理指出
如果它是一个标准的浏览器,无javascript:在渲染页面服务器 侧
如果它是一个标准的浏览器,使用javascript可以实现:只需发送从服务器端的数据(或使用Ajax加载),从客户端和呈现数据
您可以使用的东西像Mustache,至极是许多服务器端语言(PHP和Ruby,Java的模板引擎运转......也于JavaScript,可实现客户端页面渲染!
,并尝试使用一个JavaScript框架喜欢jQuery,Mootools,Dojo或ExtJS,他们会帮你写将在每个浏览器上运行的代码。
PHP是好一些事情,包括把手类型模板,并快速的服务器端内容替换。但它对于一些事情也不是很好,比如单页应用程序和游戏,实时更新网站。这些东西都是JavaScript强大的地方。
请您详细说明这些差异吗? – 2014-10-24 01:12:37
感谢大家对他们的意见。这有助于证实我的怀疑,特别是在搜索引擎优化。堆栈溢出FTW! – Eric 2011-05-24 13:42:10
看起来,尽管在这里达成共识,JavaScript仍然是现在的走向(Angular,React等)。对于没有人提到的JavaScript的一个重要的专业人员,没有页面重新加载,从而带来更好的用户体验。 – 2016-05-18 19:25:25