鶏が先か卵が先かという問題に遭遇し、論理的な解決策があると思います。しかし、他の人が似たようなものに遭遇したに違いないと思ったので、大衆のためにそこに浮かぶと思いました。
状況は、DOMがクライアント側でレンダリングを完了した後に実行する必要があるいくつかのコールバックをキューに入れるためにdojoのaddOnLoad関数を使用したいということです。だから私がしていることは次のとおりです:
<html>
<head>
<script type="text/javascript" src="dojo.xd.js"></script>
...
</head>
<body>
...
<script type="text/javascript">
dojo.addOnLoad( ... );
dojo.addOnLoad( ... );
...
</script>
</body>
</html>
さて、問題は、Dojoライブラリ全体がブラウザにダウンロードされる前にdojo.addOnLoadを呼び出しているように見えることです。DOM全体がロードされる前に(そして通常のbody onloadコールバックがトリガーされる前に)インラインSCRIPTコンテンツを実行する必要があるため、これはある意味で理にかなっています。
私の質問はこれです-私のアプローチサウンドです、または関数を呼び出すために通常/標準のボディオンロードJavaScriptコールバックを登録する方が理にかなっています。これは各dojo.addOnLoadsがSCRIPTブロックで実行しているのと同じ作業を行います。もちろん、これは疑問を投げかけます。ライブラリを使用する前にDojoライブラリがロードされることが保証されていないのに、なぜdojo.addOnLoadを使用するのでしょうか。
うまくいけば、この状況は私以外の誰かにとって理にかなっています。他の誰かがこの状況に遭遇した可能性があるようです。
考え?
よろしく、アダムライス