crapLoader - 异步JS脚本加载器

openkk 12年前

crapLoader.js 是一个 JavaScript 库,用来通过 document.write 加载例如广告、wedgets 以及其他 JS 代码。正常情况下 document.write 输出内容不是异步的,但该库可通过异步方式来执行所加载的代码。

主要特点:

  • 异步的加载第三方脚本
  • 不会堵塞当前页面的渲染
  • 你的访客可更早的看到网页内容
  • DOMContentLoaded (a.k.a. $(doc).ready ) and window.onload triggered earlier
  • 并行加载 Banners ,除了 IE
  • Banners 加载更快,至少在理论上是这样
  • 处理递归脚本
  • Inline and external javascript
  • Inline and external vbscript
  • 缓冲 document.write, flush on script load event
  • Handles document.getElementById from the buffer
  • Tested (manually) in IE 6-10, latest Firefox, Chrome, Safari, Opera

示例代码:

<script type="text/javascript" src="crapLoader.js"></script>    <div id="banner1"></div>  <div id="banner2"></div>  <script type="text/javascript">      crapLoader.loadScript("http://foo.bar/ad1.js", "banner1", {          succsess: function() {              if( !$("#banner1 img").is("[src $= 1px.gif]") ) { // if not an empty gif                  $("body").addClass("dominance");              // it's a dominance ad!              }          }      });      crapLoader.loadScript("http://foo.bar/ad2.js", "banner2", {          charset: "iso-8859-1"      });  </script>

项目主页:http://www.open-open.com/lib/view/home/1339209099416