寻找一种分离Javascript和HTML的好方法

时间:2012-02-16 10:18:06

标签: javascript html user-experience

我刚刚开始使用jquery,所以我需要确保我做得很好。我会解释我现在的想法,请告诉我你的想法。

首先我认为服务器的html输出应该主要针对那些没有js或者有浏览器错误的人。这样,该页面将适合我希望的每个人。

然后我认为jquery应该有用于修改页面的隐藏数据和模板。

我不知道模板应该采用什么格式。一个想法是让它像这样

<div id="checkbox-template" class="templatedefinition" style="visibility:hidden">
<input type="checkbox"><label></label>
</div>

我认为这是完美的,但我有疑虑。另一个想法是使用

$(document.createElement())

然后有几种方法可以处理数据。我尝试过这样简单的事情:

var fruits= new Array(
    // id - Label - info
    new Array("orange","Orange","some info"),
    new Array("apple","Apple","some info"),
    new Array("banana","Banana","some info")
    );

现在我已准备好为水果构建复选框并修改原始页面。但在我开始在所有解决方案中做这样的事情之前,很高兴知道这样的事情是否正常。

1 个答案:

答案 0 :(得分:1)

首先让我说,你的问题并没有严格的规则,而是根据个人对特定情况的偏好。以下是一些可以帮助您的注意事项:

  

首先我认为服务器的html输出应该主要是   对于那些没有js或者有浏览器错误的人。那样的   页面将适用于我希望的每个人。

您所说的是“Progressive enhancement”,这是一种增加网站“辅助功能”的策略。为此,您需要计划和开发一种用户体验,该体验适用于未添加Javascript的人员,然后再添加Javascript以增强启用它的人的体验。当你的Javascript不可用时,你应该在你的设计中规划什么样的功能“丢失” - 简单地说 - 好的“可访问性”就是说“提交表单”这样的主要任务仍然可以在没有Javascript的情况下运行。

您还在询问是否应该输出隐藏的HTML元素,这些元素仅用于HTML中的“增强的Javascript体验”,或者您应该使用Javascript动态生成它。这带来了另一个术语 - “Unobtrusive JavaScript”。

有一种想法是永远不会在你的html页面中放置任何仅用于javascript体验的东西,并使用Javascript本身将这些内容添加到DOM。这样做的好处是你将拥有一个更干净,更轻便,更便携的html页面。

另一种思想是不那么“纯粹主义”,更“实际” - 意味着做最有效的事情。如果您只需将额外的代码直接添加到HTML页面并使用css隐藏它,就不要写额外的100行Javascript代码并花费额外的2小时。

我个人认为,作为程序员,我们在做出这些决定时应始终考虑商业价值。问问自己“我应该花多少时间来做这件事?”,“我是在为500万或500万用户创建一个网站吗?”。基本上,不要使用手榴弹杀死老鼠;)