svnno****@sourc*****
svnno****@sourc*****
2011年 3月 29日 (火) 22:39:52 JST
Revision: 2526
http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2526
Author: dhrname
Date: 2011-03-29 22:39:52 +0900 (Tue, 29 Mar 2011)
Log Message:
-----------
GetSVGDocumentのメソッドを整理して軽量化
Modified Paths:
--------------
branches/07x/074/org/w3c/dom/svg.js
Modified: branches/07x/074/org/w3c/dom/svg.js
===================================================================
--- branches/07x/074/org/w3c/dom/svg.js 2011-03-28 14:39:04 UTC (rev 2525)
+++ branches/07x/074/org/w3c/dom/svg.js 2011-03-29 13:39:52 UTC (rev 2526)
@@ -1684,18 +1684,19 @@
backr = document.createElement("v:rect"),
style, fontSize, w, h, sw, sh, trstyle, tpstyle, backrs, viewWidth, viewHeight,
bfl, bft, bl, backright, backdown, text,
- _parseFloat = parseFloat;
- NAIBU.doc.async = false;
+ _parseFloat = parseFloat,
+ ndoc = NAIBU.doc;
+ ndoc.async = false;
/*下記のプロパティについては、Microsoftのサイトを参照
*ResolveExternals Property [Second-level DOM]
* http://msdn.microsoft.com/en-us/library/ms761375%28VS.85%29.aspx
*ValidateOnParse Property [Second-level DOM]
* http://msdn.microsoft.com/en-us/library/ms760286%28VS.85%29.asp
*/
- NAIBU.doc.validateOnParse = false;
- NAIBU.doc.resolveExternals = false;
- NAIBU.doc.preserveWhiteSpace = true;
- NAIBU.doc.loadXML(str);
+ ndoc.validateOnParse = false;
+ ndoc.resolveExternals = false;
+ ndoc.preserveWhiteSpace = true;
+ ndoc.loadXML(str);
/*IE6-8のみで使えるupdateIntervalは、
*描画間隔の調整が可能。デフォルトは0。
*スクロール時にバグが起きるので、0に戻してやる必要がある。
@@ -1706,13 +1707,13 @@
*代替の処理を用いて、実体参照を処理するもの
*/
var tmp = str;
- var enti = (NAIBU.doc.doctype)? NAIBU.doc.doctype.entities: { length:0 };
+ var enti = (ndoc.doctype)? ndoc.doctype.entities: { length:0 };
for (var i=0; i<enti.length; i++) {
var map = enti.item(i);
var regex = new RegExp("&"+map.nodeName+";", "g");
tmp = tmp.replace(regex, map.firstChild.xml);
}
- NAIBU.doc.loadXML(tmp);
+ ndoc.loadXML(tmp);
tmp = null;
}
tview.top = 0;
@@ -1733,8 +1734,8 @@
if (objh) {
tar.setAttributeNS(null, "height", objh);
}
- fi = NAIBU.doc.documentElement.firstChild;
- attr = NAIBU.doc.documentElement.attributes;
+ fi = ndoc.documentElement.firstChild;
+ attr = ndoc.documentElement.attributes;
/*ルート要素のNamedNodeMapを検索する*/
for (var i=0,atli=attr.length;i<atli;++i) {
att = s.importNode(attr[i], false);
@@ -1757,7 +1758,7 @@
*作り出す作業を行う。これは必須
*/
style = tar.ownerDocument.defaultView.getComputedStyle(tar, "");
- fontSize = parseFloat(style.getPropertyValue("font-size"));
+ fontSize = _parseFloat(style.getPropertyValue("font-size"));
tar.x.baseVal._emToUnit(fontSize);
tar.y.baseVal._emToUnit(fontSize);
tar.width.baseVal._emToUnit(fontSize);
@@ -1783,8 +1784,8 @@
/*ウィンドウ枠の長さを決定する*/
viewWidth = w > sw ? sw : w;
viewHeight = h > sh ? sh : h;
- bfl = parseFloat(backrs.left);
- bft = parseFloat(backrs.top);
+ bfl = _parseFloat(backrs.left);
+ bft = _parseFloat(backrs.top);
bl = -tar._tx;
bt = -tar._ty;
if (bfl !== 0 && !isNaN(bfl)) { //内部の図形にずれが生じたとき(isNaNはIE8でautoがデフォルト値のため)
@@ -1842,16 +1843,20 @@
/*以下はバッファリングにためておいた要素とイベントを、後から実行する*/
NAIBU._buff_num = 0;
NAIBU._buff = setInterval(function(){
- if (DOMImplementation._buffer_.length === 0) {
+ var n = NAIBU._buff_num,
+ dbuf = DOMImplementation._buffer_,
+ dbufli = dbuf.length,
+ s, evt;
+ if (dufli === 0) {
clearInterval(Event._buff);
} else {
- var n = NAIBU._buff_num;
for (var i=0;i<50;++i) {
- var s = DOMImplementation._buffer_[n], evt = DOMImplementation._buffer_[n+1];
+ s = dbuf[n];
+ evt = dbuf[n+1];
s.dispatchEvent(evt);
n += 2;
- s = evt = null;
- if (n >= DOMImplementation._buffer_.length) {
+ dbuf = dbufli = s = evt = null;
+ if (n >= dbufli) {
clearInterval(NAIBU._buff);
DOMImplementation._buffer_ = null;
NAIBU.Time.start();