OSDN Git Service

base関数のキャッシュを使った高速化
authordhrname <sie-developers@lists.sourceforge.jp>
Sat, 25 Oct 2014 12:51:55 +0000 (21:51 +0900)
committerdhrname <sie-developers@lists.sourceforge.jp>
Sat, 25 Oct 2014 12:51:55 +0000 (21:51 +0900)
document/index.en.html
document/index.html
tool/funcproto/base.js

index 609d09a..2dfd9a7 100644 (file)
 </ol>\r
 <h1>SIE - SVG JavaScript library</h1>\r
 <h2 class="title">Download SIE 16</h2>\r
-<p><a href="https://sourceforge.jp/projects/sie/downloads/61670/sie16.tar.gz/">sie-16.tar.gz</a> (GZIP 329 KB)</p>\r
+<p><a href="http://sourceforge.jp/projects/sie/downloads/62125/sie17.zip/">sie17.zip</a> (ZIP 340.4 KB)</p>\r
 <h3>Requirements</h3>\r
-<p>Internet Explorer8+, Mozilla Firefox4+, Opera10.0+, Safari3.0+ or Google Chrome3.0+</p>\r
-<p>A HTTP Server Soft (Apache)</p>\r
+<p>Internet Explorer8+, Mozilla Firefox10+, Opera10.0+, Safari3.0+ or Google Chrome3.0+</p>\r
+<p>A HTTP Server Soft</p>\r
 <h2 class="title">What's SIE</h2>\r
 <p>The 'SIE' is an Open Source rendring engine written in JavaScript to display a W3C standard Scalable Vector Graphics (i.e. SVG). SVG is a language for drawing a vector graphics like HTML. It's used in Inkscape, Illustlator and so on. </p>\r
 <p>The SIE Project is a community of the SIE developers. We will support the Web standards Graphics, and provide to access the SIE's code.</p>\r
index dff2a19..ce98d0c 100644 (file)
 <p><object data="sie-logo.svg" type="image/svg+xml" width="100%" height="90"></object></p>\r
 <h1>SIE - SVG形式の画像を表示できるJavaScriptライブラリ</h1>\r
 <h2 class="title">SIE 16 を無料ダウンロード</h2>\r
-<p><a href="https://sourceforge.jp/projects/sie/downloads/61670/sie16.tar.gz/">sie-16.tar.gz</a> (GZIP形式, 329 KB)</p>\r
-<p>あらかじめ、圧縮ファイル(GZIP形式)をダウンロードしてから、解凍してください。sie.jsを手に入れることができます。</p>\r
+<p><a href="http://sourceforge.jp/projects/sie/downloads/62125/sie17.zip/">sie17.zip</a> (ZIP形式 340.4 KB)</p>\r
+<p>あらかじめ、圧縮ファイル(ZIP形式)をダウンロードしてから、解凍してください。sie.jsを手に入れることができます。</p>\r
 <h3>動作環境</h3>\r
-<p>Internet Explorer8+、Firefox4+、Opera10.0+、Safari3.0+、Google Chrome3.0+</p>\r
+<p>Internet Explorer8+、Firefox10+、Opera10.0+、Safari3.0+、Google Chrome3.0+</p>\r
 <h2 class="title">SIEとは</h2>\r
 <p><img src="mini_screenshot.png" width="192" height="124" title="screenshot" /></p>\r
 <p>SIEとは、標準的な2Dベクトル画像形式であるスケーラブル ベクタ グラフィックス(以下、SVG)をブラウザで表示するためのソフトです。JavaScriptで記述されています。プラグインは不必要。例えば、古いインターネットエクスプローラーやその他のブラウザで、SVGを表示するのに便利です。</p>\r
index 885a734..5019eb9 100644 (file)
@@ -126,23 +126,23 @@ var _base = {
     }\r
 };\r
 \r
-/*base関数で型のチェック用に使う*/\r
-_base.FF = function(){};\r
-_base.FF.prototype = _base.obj;\r
+/*base関数でキャッシュとして使うオブジェクト*/\r
+var baseCache = {};\r
 \r
 base = function (name) {\r
-    var __base = _base; //エイリアス作成\r
+    var __base = _base,\r
+         _cache = baseCache; //エイリアス作成\r
     if (!name) {\r
       throw new Error("No arguments error");\r
-    } else if (this[name] && (this[name] instanceof __base.FF)) {\r
+    } else if (_cache[name]) {\r
       /*キャッシュに登録されている場合は、登録されたオブジェクトを返す*/\r
-      return this[name];\r
+      return _cache[name];\r
     } else {\r
       var F = __base.F,\r
            s;\r
       F.prototype = __base.obj;\r
       s = new F();\r
-      this[name] = s;\r
+      this[name] = _cache[name] = s;\r
       /*自身が値であるようなプロパティを設定する*/\r
       s[name] = s;\r
       F = void 0;\r
@@ -156,6 +156,8 @@ var hash = {},
     proto = Object.prototype;\r
 for (var i in proto) {\r
   hash[i] = true;\r
+  /*上記のキャッシュについて、すべてのプロパティをnullかundefinedにしておく*/\r
+  baseCache[i] = null;\r
 }\r
 hash.constructor = false; //constructorはNGハッシュに追加しない\r
 _base.__ng_ = hash;\r
@@ -166,7 +168,7 @@ hash = proto = void 0;
  */\r
 base.free = function() {\r
   delete _base.obj;\r
-  _base = void 0;\r
+  _base = baseCache = void 0;\r
 };\r
 \r
 })();\r