【发布时间】:2014-12-20 17:56:02
【问题描述】:
我想为所有浏览器和设备提供相同的 DOM,例如台式机、平板电脑、手机等。但是,我不希望仅用于台式机的资产(图像、样式表等)在移动设备上下载并浪费 HTTP 请求和带宽。
是否有任何方法可以在浏览器开始下载资产之前操作 DOM,严格使用客户端 Javacript,具体取决于设备和浏览器?
我觉得使用 DOMContentLoaded 事件 (https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded) 让我很接近..
编辑:我发现 mobify.js 似乎符合我的要求:https://www.mobify.com/mobifyjs/v2/docs/
它们提供了“在任何资源加载之前操作 DOM 的捕获 API”。它似乎也是使用客户端 Javascript 完成的。必须在 GitHub 上查看他们的源代码,看看他们是如何做到的。
【问题讨论】:
-
我认为您想在第二句话中提出问题,例如,您应该如何以响应式方式构建您的网站以最大限度地减少 HTTP 请求和下载。
DOMContentLoaded可以在页面加载之前运行。不过,我认为有响应式技术可以做得更好(or at least intelligently)。 -
@JaredFarrish,这是真的。在这种情况下,我有几张特别是只在桌面上使用的图像,当他们不打算使用它们时,让那些在移动设备上下载的图像是一种浪费。我希望能够在下载之前使用 javascript 从 DOM 中删除
,当功能检测让我知道我正在为移动浏览器提供服务时。
-
@Louis 如何在下载任何图像之前运行一些 javascript 可能是一个更好的问题。
标签: javascript dom responsive-design dom-events