基本的な処理方針(1157010937)
※この記事はhttp://d.hatena.ne.jp/Mug/20060903の改修案件です。
後から見づらいと思うのでタグをつけました。1157010937では長いので、下3桁で937とします。
この記事以前の投稿は、時系列(上から下へ)下記のものです。
- 元はこの質問でした。
http://q.hatena.ne.jp/1157010937 - 私の回答です。
http://d.hatena.ne.jp/Mug/20060903 - 今後&複数対応どうするか。
http://d.hatena.ne.jp/Mug/20060915
最初に、まずは細かいところはどうでもよく、アルゴリズムから考え直します。
- JS外部ファイルの動的ロード方法
- ⇒以前の通りで、scriptタグをdocument.createElementする。(参考:Ajaxでは別サーバーに対応できない。)
- 読み込んだ外部JSファイルのdocument.writeを救う方法
- ⇒これも以前の通り。ネイティブのdocument.writeを詐称する。
- 外部JSファイルのロードタイミングについて
- ⇒1件ずつ順番に行う。以前のようにパラレルだとどのJSファイルからdocument.writeなのか判別不能のため。
- document.writeを戻すタイミングについて
- ⇒おおよそ以前の方法と同じ。外部JSファイルの実行完了はキャッチできない*1ので、その外部JSファイルで最初のdocument.writeで戻し関数をタイマーセット(0秒)し、JSのスレッド終了時点で戻し関数を発動させる。
- document.writeを戻すタイムアウト*2について
- ⇒以前と同じ構造。外部JSファイルをロードするときに戻し関数をタイムアウト秒数後に発動するようにする。ただし、外部JSファイルの最初のdocument.writeが早かった場合、これを解除する。
- document.writeされた内容の処遇(案)
- ⇒【これは案です】変数に溜めておいて、予め指定された関数に引数として渡す…かな。
つまり、元の質問では動的に生成した文字列の中にscriptタグがあったのですが、そことは切り離して別機能としようと思います。
…最初の基本方針としては以上のような感じでしょうか。