【问题标题】:Using javascript to remove div class使用 javascript 删除 div 类
【发布时间】:2012-10-07 04:17:54
【问题描述】:

我想知道是否可以使用 javascript 删除特定 div class 的内容?

我希望能够偶尔访问这个 div 的内容,所以我不想完全删除它,但我担心它仍然会占用页面加载时间,即使它有 'display: none' 在 CSS 中应用到它。这是正确的吗?

是否有任何 JavaScript 可以删除特定“div 类”的页面内容,从而不会减慢页面加载时间?

【问题讨论】:

  • 你想做什么没有多大意义,因为在脚本运行时,div 已经被加载了。
  • 按需加载内容,而不是删除 div 的内容。 api.jquery.com/load
  • 我们要删除多少数据?如果内容比较少,下载成本可以忽略不计。如果有 很多 内容,您可能应该将其分成多个页面或为用户提供更好的聚合选项。
  • div 类内容是嵌入的 youtube 视频,每个视频在加载之前从 youtube 获取缩略图和文本等信息。我有另一个类,它位于同一个父 div 中,fancybox 从我自己的静止图像中启动嵌入的视频,从而消除了从 youtube 的获取。 @cimmanon

标签: javascript css class html


【解决方案1】:

JavaScript 是在客户端工作的,具体来说,就是对加载的文档生成的 DOM 进行操作,也就是说,如果 JS 可以看到该对象,那么它已经花费了一些时间来加载。

如果您不想加载它,最好的方法是不要将其发送到客户端,例如,使用 perl、php、asp 等服务器语言。等等

另一种方式,就是在页面中有一个frame,src为空,在文档加载完成后请求那个div,这样,效果就是客户端没有加载那个内容在第一名,但稍后可用于您的流程。

再见

【讨论】:

  • 我宁愿使用 AJAX 而不是框架,但我想它仍然可以达到目的。
  • 是的,但是 ajax 增加了页面上的负载以及客户端的处理负载。帧有延迟加载,客户端几乎没有处理时间。而且使用的JS也比较简单。
【解决方案2】:

使用 JavaScript 删除元素不会影响页面的加载时间。这是因为页面已下载,然后代码在页面加载后删除了元素。它甚至可能使其变慢(稍微),因为浏览器必须执行这样的代码才能删除元素。

如果您想缩短页面加载时间,请从文件中删除该元素,然后再次将其上传到您的服务器。

然后,您可以通过 AJAX 请求动态创建此 <div>(如 Dr.Molle 建议的那样),使用库或普通 JS。

【讨论】:

  • 建议在多个小图像上使用单个精灵图是有原因的:下载大量数据(在合理范围内)更有效。通过 AJAX 加载一半页面和一半页面不会使网站加载速度更快。
  • @cimmanon:这在技术上是正确的。 整个网站加载的总时间是相同的(或者可能更多)。因此,只有在网站的一半足以让用户在其余部分加载时保持娱乐时,我才会这样做。
  • 太糟糕了,大多数人对娱乐不感兴趣,他们对检索信息感兴趣。大多数使用 AJAX 的应用程序都将其用于信息检索,这通常是用户希望首先
  • @cimmanon:这真的取决于所讨论的信息是主要的还是次要的(因为可以先加载主要的,然后可以通过AJAX加载次要的;其次是额外的内容)。它还取决于网站的目的
猜你喜欢
  • 1970-01-01
  • 2019-04-09
  • 2020-09-04
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 2013-07-13
  • 2023-02-07
相关资源
最近更新 更多