使用jquery而不是在页面正文中编写文档的所有html?

时间:2010-05-06 19:55:10

标签: jquery html

我是一个正在使用Web应用程序的UI用户,我与之合作的大多数人都是后端开发人员。我目前在与他们意见不一致上述是否是一件谨慎的事情。

这个应用程序可以使用相当多的JavaScript,甚至在没有它的情况下也不会工作。在这种情况下,我正在与之合作的一个后端开发人员声称页面可以甚至应该完全使用JavaScript或jquery构建。这让我完全措手不及。我们在这里讨论div标签,列表,背景图片和文字。

我试图向他解释这根本不是正确的做法,从最佳实践的角度来看:内容(html)应该与表示(css)和行为(脚本等)分开)。

我知道在jquery中编写html是可能的,虽然我还没有这样做,但我认为这不是应该做的事情。甚至可以用jquery写所有代码吗?

很想听到任何想法,因为我明天会再和他讨论这个问题。

10 个答案:

答案 0 :(得分:3)

如果你将JQuery的内容与行为JQuery分开,那可能会更加明智。

但总的来说,为什么?这样做有什么好处?如果它是“不重复自己”(DRY),通常PHP,JSP或类似的东西会更有意义。在客户端渲染到HTML非常罕见。

对于那些现在不在船上的人来说,这样做会更难维护,而且它也会大大搞砸你在各种搜索引擎中的网页排名。

在对我的回复的评论中提出,有些网站对此非常强烈;例如,Google文档和Google Mail。如果你认为你的开发人员具有足够高的质量(并且足够高的奉献精神!)来制作那种规模和口径的东西,那么他们可能值得一试。但是,如果你没有做一些需要这种动态内容的东西,那对我来说似乎仍然是一个非常危险的想法,而且我当然是开发人员而不是设计师。

答案 1 :(得分:2)

可能:是的,它们可能(主要是用javascript编写)

应该:不。搜索引擎不会读取任何javascript,并且任何拥有不支持您的javascript的浏览器的人都无法看到该网站。 (即使屏幕阅读器会被你的网站弄得乱七八糟,如果它都是javascript)

答案 2 :(得分:1)

答案 3 :(得分:1)

jQuery和类似方法的优点之一是它鼓励您将行为与内容正确分开。这种方法完全忽视了这一点,并将内容混合回行为。

另一张海报提到渐进增强(http://en.wikipedia.org/wiki/Progressive_enhancement),这是其中很重要的一部分。对于有限制的用户(没有Javascript,有限的插件,可访问性问题),您的应用程序应该优雅地降级。

我甚至没有提到SEO(再次点击维基百科,只允许一个链接;-))。如果您的内容是通过Javascript构建并插入的,搜索引擎将无法找到您的网页,则抓取工具将无法读取您的文字。

答案 4 :(得分:0)

如果您构建了客户端的所有页面,那么获得任何页面的机会都很差 任何搜索引擎都有不错的页面排名。

话虽这么说,我构建了使用JSON的接口,并使用JavaScript动态构建所有HTML。它工作得很好并且需要< 1秒渲染。该页面是公司登录的背后,所以我并不关心搜索引擎排名。

代码输出确实使用了静态样式表,并将适当的类应用于HTML。

答案 5 :(得分:0)

你是对的,虽然你可以用JS / jQuery操纵DOM,但使用JS来完全构建DOM会使网站变得非常慢(尤其是IE)。将JS的DOM修改保持在最低限度

答案 6 :(得分:0)

专注于编写可维护的代码,其他开发人员提出的建议在长期内不会是非常可维护的。问问自己/其他开发人员3到5年后jquery会是什么样子。如果他耸了耸肩,他们就不会专注于可维护性。没有人愿意花几个小时来追查一个不起眼的错误。

只是我的想法。

答案 7 :(得分:0)

这里有两个问题:

1.没有理由做一些奇怪的事情,比如将所有内容放入jquery,而通常的方式是正确的 2.搜索引擎不会查看你的jquery文件

因此,通过javascript发送所有内容是无稽之谈.......

答案 8 :(得分:0)

  

content(html)应该与presentation(css)和行为(脚本等)分开。

不确定。但有些网站比其他网站更“内容”。如果您拥有的是纯粹的Web应用程序,例如图像编辑器:它不需要可搜索的内容,也没有任何内置内容(即,它们都来自数据库)。当然,请继续使用JavaScript构建它。当所有内容都是一些空的占位符div时,将“内容”与行为分开可以获得很多好处。

(当您从脚本构建页面内容时,请使用DOM样式的方法和属性。在jQuery中,使用attrtext和jQuery 1.4 $('<div>', {attrname: value})语法。 不要创建HTML字符串以写入页面;您将不可避免地在某处弄错HTML编码并最终导致错误和安全问题。)

对于一个内容繁重的网站,您希望所有人都可以访问并在搜索引擎中排名,是的:这将是一个错误。但是,您可能已经通过使该网站仅与JS一起使用来实现这些目标。

答案 9 :(得分:0)

恕我直言,从jquery或javascript编写html应限于需要以这种方式创建的内容。

我可以编写一个javascript来输出25个没有循环的数组项,但那将是愚蠢的

仅仅因为你能做某事并不意味着你应该做到!