te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>Is it possible to load a javascript ad last on the page to prevent slow load times? - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Is it possible to load a javascript ad last on the page to prevent slow load times? - Stack Overflow

programmeradmin3浏览0评论

Is there a way to include a javascript-loaded advertisement last on the page, but have it positioned in the content? The primary purpose is to keep the javascript ad from slowing down the page load, so if there are other methods to achieve this please do share.

Is there a way to include a javascript-loaded advertisement last on the page, but have it positioned in the content? The primary purpose is to keep the javascript ad from slowing down the page load, so if there are other methods to achieve this please do share.

Share Improve this question edited Apr 4, 2015 at 19:43 niton 9,17923 gold badges35 silver badges56 bronze badges asked Jan 18, 2009 at 2:38 britgbritg 2252 silver badges8 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 10

There is the defer attribute you could put on script blocks to defer its execution until the page pletes loading.

<script src="myscript.js" type="text/javascript" defer>
// blah blah
</script>

I am not sure about the general remendation about using this attribute though.

EDIT: As @David pointed out, use defer="defer" for XHTML

And you can always put the code inside the window.onload event so that it executes after the pages load:

window.onload = function () {
    // ad codes here

};

But the later approach may pose some problems, you might want to test it out first.

More information on this blog post by Dean Edwards, the guy who wrote the famous javascript packer.


EDIT: If the size of ad code itself is the problem, you can always defer the loading by bining the above methods with script injection via document.write:

function loadScript(src) {
    document.write('<script src="' + src + '" type="text/javascript"></script>');
}

So the resulting code might look something like this:

<script type="text/javascript" defer>

function loadScript(src) {
    document.write('<script src="' + src + '" type="text/javascript"></script>');
}

loadScript('http://ads.example./advertisements.js');

</script>

But as I've said, it depends on the specific ad code you get too. Because of the position document.write will write stuffs to might not be the location you want. Some modifications might be neccessary.

function addLoadEvent(func) {
      var oldonload = window.onload;
      if (typeof window.onload != 'function') {
        window.onload = func;
      } else {
        window.onload = function() {
          oldonload();
          func();
        }
      }
    }

The above code is a nice way to add a new onload event that doesn't interfere with your existing javascript. Then you can add a new load event to load the advertisements using the code below.

addLoadEvent(function() { // call to loadScript() here });

I usually put the tag to load script just before the end of body tag. So it loads at the end of the page. This does not give any validation errors or whatsoever.

发布评论

评论列表(0)

  1. 暂无评论