LABjs 加载脚本时出现问题

发布于 2024-10-20 13:47:16 字数 460 浏览 7 评论 0原文

我正在使用 labjs 来加载我的脚本。我有一个来自 feedburner 的脚本,它显示我博客中来自 rss feed 的 HTML 最新帖子。 feedburner 中的代码运行良好,以 html 形式显示所有帖子:

<script src="http://feeds.feedburner.com/Goonerhood?format=sigpro" type="text/javascript" ></script>

我正在尝试使用 labjs 加载相同的脚本,但它没有显示任何内容。这是我的代码:

<script>
   $LAB
   .script("http://feeds.feedburner.com/Goonerhood?format=sigpro");
</script>

有什么建议我哪里出错了吗?

I'm using labjs to load my scripts. I've got a script from feedburner which shows the lastest posts from my blog in HTML from my rss feed. The code from feedburner is and works just fine, showing all the posts in html:

<script src="http://feeds.feedburner.com/Goonerhood?format=sigpro" type="text/javascript" ></script>

I'm trying to load the same script using labjs, but it's not showing anything. Here's my code:

<script>
   $LAB
   .script("http://feeds.feedburner.com/Goonerhood?format=sigpro");
</script>

Any suggestion where I'm going wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三寸金莲 2024-10-27 13:47:16

问题是该脚本全部与 document.write 相关,当您使用任何类型的动态异步技术加载脚本时,无法使用(好吧,不应该使用)它。

当使用

  1. 浏览器在脚本可用时立即执行该脚本(即,当服务器将脚本返回给客户端时),阻止所有其他活动,直到脚本完成;
  2. 在发生类似 (1) 的情况时,DOM 尚未完成,因此调用 document.write 将内容附加到正在进行的 DOM。

当异步加载脚本时,只有在 DOM 完成之后才会执行脚本。此时,对 document.write 的调用会隐式调用 document.open,这在已构建的页面上会破坏所有内容。

The problem is that that script is all about document.write, which cannot be used (well, should not be used) when you're loading a script with any sort of dynamic, asynchronous technique.

The document.write function can be used when a script is imported with a <script> tag for two reasons:

  1. The browser executes the script immediately on its being available to it (i.e., when the server returns the script to the client), blocking all other activity until the script is done;
  2. The DOM is not finished yet at the point something like (1) happens, so calling document.write appends content to the in-progress DOM.

When you load a script asynchronously, the script won't be executed until after the DOM is completed. At that point, a call to document.write implicitly calls document.open, which on an already-built page will blow everything away.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文