Expand Hatena::Star

    @@ -26,33 +26,51 @@ //console.timeEnd('*runtime'); /* -# Performance on http://d.hatena.ne.jp/amachang/ in Markdown -1st -> 2nd execute times. +# About +Witten in [GitHub Flavored Markdown] (http://github.github.com/github-flavored-markdown/) + +## Performance on http://d.hatena.ne.jp/amachang/ +1st -> 2nd execute times on acutual environment. + debug code included + disable cache -## nonDOM -+ *runtime: 47ms -> *runtime: 57ms -## useDOM + +### nonDOM +> *runtime: 47ms -> *runtime: 57ms + +It's too slow when 2nd execute or after. + +### useDOM +DOM select part like this. + Hatena.Star.EntryLoader.entries[0].star_container.querySelector('SELECTOR'); -### some selectors + +#### selectors + .hatena-star-star-container > .hatena-star-inner-count - *runtime: 36ms -> *runtime: 2ms +> *runtime: 36ms -> *runtime: 2ms + + span.hatena-star-star-container > span.hatena-star-inner-count - *runtime: 51ms -> *runtime: 3ms +> *runtime: 51ms -> *runtime: 3ms + + span.hatena-star-inner-count - *runtime: 42ms -> *runtime: 2ms +> *runtime: 42ms -> *runtime: 2ms + + .hatena-star-inner-count - *runtime: 39ms -> *runtime: 3ms -### disable other Greasemonkey Scripts +> *runtime: 39ms -> *runtime: 3ms + +#### Disable heavy Greasemonkey Script (star icon change to profile) + span.hatena-star-inner-count - *runtime: 4ms -> *runtime: 0ms -# Performance on http://d.hatena.ne.jp/amachang/archive -+ debug code console.time() only +> *runtime: 4ms -> *runtime: 0ms + +## Performance on http://d.hatena.ne.jp/amachang/archive +1st -> 2nd execute times. ++ enable debug code but console.time() and console.timeEnd() only + disable cache -### disable other Greasemonkey Scripts -Expand event sequence probably async. + +#### Disable heavy Greasemonkey Script (star icon change to profile) + span.hatena-star-inner-count - *runtime: 14ms -> *runtime: 1ms -Actual finish time too long :-P + +> *runtime: 14ms -> *runtime: 1ms + +Expand event sequence probably async. It's looks like so fast but actual finish time is too long :-P */
  • /*
     * @title Expand Hatena::Star
     * @description Expand Hateha::Star handle colored stars
     * @include http://*
     * @license MIT License http://nrm.mit-license.org/2012
     * @require 
     */
    
    // http://os0x.g.hatena.ne.jp/os0x/20080502/1209724672
    //console.time('*runtime');
    (function(Hatena) {
        if (typeof Hatena === 'undefined') return;
    
        Hatena.Star.EntryLoader.entries.forEach(function (entry) {
            var expander = entry.star_container.querySelector('span.hatena-star-inner-count');
            if (expander && expander.textContent) {
                entry.stars.some(function (star) {
                    if (star && star.count && star.showInnerStars) {
                        star.showInnerStars();
                        return true; // rustic
                    }
                });
            }
        });
    })(window.Hatena);
    //console.timeEnd('*runtime');
    
    /*
    # About
    Witten in [GitHub Flavored Markdown] (http://github.github.com/github-flavored-markdown/)
    
    ## Performance on http://d.hatena.ne.jp/amachang/
    1st -> 2nd execute times on acutual environment.
    + debug code included
    + disable cache
    
    ### nonDOM
    > *runtime: 47ms -> *runtime: 57ms
    
    It's too slow when 2nd execute or after.
    
    ### useDOM
    DOM select part like this.
    
        Hatena.Star.EntryLoader.entries[0].star_container.querySelector('SELECTOR');
    
    #### selectors
    + .hatena-star-star-container > .hatena-star-inner-count
    > *runtime: 36ms -> *runtime: 2ms
    
    + span.hatena-star-star-container > span.hatena-star-inner-count
    > *runtime: 51ms -> *runtime: 3ms 
    
    + span.hatena-star-inner-count
    > *runtime: 42ms -> *runtime: 2ms
    
    + .hatena-star-inner-count
    > *runtime: 39ms -> *runtime: 3ms
    
    #### Disable heavy Greasemonkey Script (star icon change to profile)
    + span.hatena-star-inner-count
    
    > *runtime: 4ms -> *runtime: 0ms
    
    ## Performance on http://d.hatena.ne.jp/amachang/archive
    1st -> 2nd execute times.
    + enable debug code but console.time() and console.timeEnd() only
    + disable cache
    
    #### Disable heavy Greasemonkey Script (star icon change to profile)
    + span.hatena-star-inner-count
    
    > *runtime: 14ms -> *runtime: 1ms
    
    Expand event sequence probably async. It's looks like so fast but actual finish time is too long :-P
    */
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2014/12/11 03:55:50 - 2014-12-11
  2. 2014/11/22 06:03:33 - 2014-11-22
  3. 2014/11/21 01:34:31 - 2014-11-21
  4. 2012/04/23 21:27:25 - 2012-04-23
  5. 2012/04/23 19:26:29 - 2012-04-23
  6. 2012/04/23 19:22:30 - 2012-04-23
  7. 2012/04/23 19:10:13 - 2012-04-23
  8. 2012/04/23 18:55:00 - 2012-04-23
  9. 2012/04/23 18:16:42 - 2012-04-23
  10. 2012/04/23 17:13:56 - 2012-04-23