我注意到我倾向于在JavaScript / jQuery中创建DOM对象并附加它们.这是可以的还是我应该在 HTML 中
I've noticed I tend to create DOM objects in JavaScript/jQuery and append them. Is this ok or should I be creating them in HTML?
我一直在开发一个应用程序,我注意到我倾向于在JavaScript/jQuery中创建DOM对象,然后像这样执行appendTo('body'):
$list = $('<ul/>', {
id : "thelist",
class : "listclass"
}
$list.appendTo('body');
$list.html(whateverAjaxStuff);
我的页面源代码最终只是一个带有空正文标签的头。
我只是想知道这种方法是否有任何优点/缺点。我应该在HTML中构建基本框架,然后用JavaScript操作内部HTML吗?思潮?
编辑:想澄清一下。我只对必须动态生成的东西来做这件事。$list元素加载了 AJAX,用户进行选择以填充另一个列表,依此类推。
如果有人仍然感兴趣,请链接
我不认为上面的其他答案真的足以说服你为什么绝对不应该做你现在正在做的事情。有很多理由不这样做;
- 搜索引擎优化(搜索引擎优化)
- 速度
- 禁用 JavaScript 的浏览器
- 所见即所得的编辑器(这可能会大大加快您的开发速度,并且它们不适用于您的方法)
- 调试和获得帮助要容易得多 - 如果你在上面的代码上寻求Stackoverflow的帮助,很少有人会帮助你。
- 让我们再次提及速度 - 重要的是要尽量减少在显示任何内容之前需要发生的处理量,具有大量JS处理(广告等)的网站在慢速计算机上浏览非常痛苦。
我想不出任何理由使用 jQuery 构建您的所有页面,您似乎试图模拟服务器端发生的事情(Ruby、ASP.net、PHP 等)
你可能想从JS..编辑DOM..但是完全从头开始构建它是一个非常糟糕的主意!
任何你能做的HTML放在HTML中,而不是放在JQuery:)中。
事实上,您使用 JQuery 实际构建页面这一事实的不必要的开销远远超过了您在 JQuery 中构建页面所获得的任何好处,尽管我现在想不出任何好处:)。
最终这取决于您的用例。 使用 jQuery 会降低性能,但很可能您实际上并没有注意到它。 对于很多 DOM 更改,这变得更加重要。 如果首先在jQuery中执行此操作对您来说快速/容易,那么一定要这样做,然后看看它是否足够快,适合您的场景。 如果不是,您可以根据需要返回并进行更改。
一般的经验法则是 - 尽可能少地修改 DOM,因为每次都会导致文档重排。 jQuery可以在幕后隐藏很多操作。
除了创建一个繁重的页面外,它还会阻止禁用JavaScript的用户访问该页面,他们将看到一个空白页面。
- 我应该在HTML中添加哪些标头或javascript以拒绝较旧的浏览器
- 我应该在哪里放置用于角度路由的 html 文件
- 我应该怎么做才能避免在网页上移动元素(html、css、jQuery)
- jquery我应该如何在多个html文件中实时搜索结果
- 我应该如何使用html,jQuery构建一个控制数组
- 我应该将html元素的jQuery数据存储在哪里
- 我应该如何使用Javascript处理这个html表单
- 我应该如何从 html 调用 javascript 类方法
- 构建现实世界的AngularJS应用程序,我应该如何在html中声明我的控制器.我需要在索引中声明所有.html吗?
- 如果我想在没有jQuery的情况下操作HTML / CSS,我应该应用什么方法
- 我应该在 html 标记中加上“javascript:”吗?
- 我注意到我倾向于在JavaScript / jQuery中创建DOM对象并附加它们.这是可以的还是我应该在 HTML 中
- 我应该如何尝试在不进入 html 的情况下更改 aspx Web 表单中的链接
- Javascript:在删除相关HTML时,我应该删除一个事件处理程序吗
- 我应该如何定义一个重复出现的HTML元素&用JavaScript找到它们
- 我应该将原始数据或Html作为Ajax响应发送吗
- 我的html标记应该在客户端生成吗
- 如果我允许用户为他们的“配置文件”编写HTML,我应该禁止/删除哪些元素以保证其他用户的安全
- 我应该在html中插入什么,这样在代码验证器中就可以了
- 当通过Javascript输出JSON内容时,我应该在服务器端还是客户端进行HTML转义