首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript应该在什么时候生成HTML?

JavaScript应该在什么时候生成HTML?
EN

Software Engineering用户
提问于 2012-03-28 21:42:37
回答 8查看 26.2K关注 0票数 34

我试图从JavaScript生成尽可能少的HTML。相反,我更喜欢尽可能地操作现有的标记,并且只在需要动态插入一个不适合使用Ajax的元素时生成HTML。我相信,这使得维护代码和快速更改代码变得容易得多,因为标记更容易读取和跟踪。我的经验法则是: HTML用于文档结构,CSS用于表示,JavaScript用于行为。

然而,我已经看到了很多生成HTML的JS代码,包括整个表单和内容密集的模态对话框。一般来说,哪种方法被认为是最佳实践?在什么情况下应该使用JavaScript生成HTML,什么时候不应该使用?

EN

回答 8

Software Engineering用户

回答已采纳

发布于 2012-03-28 22:44:09

每当我在javascript中遇到大量HTML生成时,它几乎都是一个独立的UI插件。这是有意义的,因为它允许将整个插件封装在一个.js文件中(+一个.css来自定义样式),从而使它易于重用、可分发,并且独立于应用程序中使用的框架。

因此,如果您正在编写一个独立的javascript插件或您希望在不同应用程序中使用的通用UI组件,这种方法有其优点。否则,我认为当您使html生成远离javascript和服务器端时,它既更干净、更易于编写,也更易于维护。

票数 19
EN

Software Engineering用户

发布于 2012-03-29 00:26:17

我认为问题在于,您正在将编写得很干净的服务器端模板与编写不当的临时客户端HTML生成进行比较。当然,编写干净的代码更容易阅读、维护和跟踪。

您可以将客户端代码称为“大量HTML",但当然,无论在哪里生成,它都是相同的HTML。“堆”实际上是一大堆代码。

有很多客户端模板库。它们的工作方式与服务器端类似。至于您应该选择哪一个,性能权衡是复杂的,但是JSON通常比它变成的HTML更紧凑,并且在客户机上使用模板可能会消除一些服务器调用。另一方面,客户端可能禁用了JS,或者速度太慢,无法实用,因此也取决于您的目标受众。总的来说,我认为这些方法是相当可比的,最大的因素是您的目标受众的浏览器功能。

但这完全取决于您正在做什么,您是否更喜欢JS而不是您的服务器环境,您喜欢哪种模板解决方案等等。

票数 29
EN

Software Engineering用户

发布于 2012-03-29 11:33:02

有一种趋势是使用客户端模板,在极端情况下,服务器只提供JSON格式的RESTful API,同时执行所有的呈现客户端。这种方法的优点是JS代码和模板是静态资源,可以通过CDN缓存、代理和分发。如果服务器端生成动态HTML,则无法执行此操作。此外,以轻量级格式返回仅来自RESTful API的数据使用的服务器端资源要少得多,使响应速度更快。而且,它更轻,网络传输更少,这再次使它更快。这样,即使在3G等连接缓慢的情况下,您也可以拥有响应性很强的低延迟应用程序。因此,这种方法在移动页面和应用程序中很流行。

有许多实现JS模板的库,其中最流行的是纯净八字胡dust.js。后来被LinkedIn使用了,他们在文章将JSP抛在脑后:将LinkedIn移动到dust.js客户端模板中描述了它们的优点。

票数 15
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/142002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档