| ブログトップ | JavaScript関連 |

javascriptの実行は順番が大事

メモ書き

単独では正常に動作していたのに、複数のスクリプトを読み込んだ途端、動かなくなることがよくあります。

考えられる原因として

  • 単純に関数名がかぶってしまっている
  • jQueryとprototypeを同時に使っている

などがありますが、最近よくはまってしまうのが、プログラムの実行順。

スクリプトA→Bという実行順なら正常なのに、B→Aになった途端動かなくなってしまう。

当たり前のことですね・・・。いやいや待ってください。

単純にプログラムの記述順に実行してくれているのならまだしも、なぜかjavascriptではまるで並列処理をしているかのように関数の処理を同時に行っている節があります。

A();

B();

という順で記述しているのに、B()処理のほうが速く終わったり、読み込むたびに処理の終了順が入れ替わるのか正常だったりダメだったり。

とりあえず、この場合は

A();

function A(){

~Aの処理~

B();

}

で一応解決します。

しかしスクリプトファイルが違う時は、こういうわけにはいかない場合があります。(勝手にほかのスクリプトを変えてしまってはいけない場合など)

その場合は、自分のスクリプトの実行開始時間をわざと遅らせましょう。(自分のスクリプトの方が後でないとダメな場合のみですが)

setTimeOut(B, 100);

まあ正直、この方法もどうかと思うんですが、とりあえずの解決をみたので、今回はこれでよし!

なにかほかにいい意見がある方は、ぜひ教えてください!m(。-_-。)m

このエントリーをはてなブックマークに追加

LINEで送る

nandani | 2010年09月02日 | コメント(0) | トラックバック(0) | JavaScript関連

トラックバック

トラックバックURL

コメントする

※メールアドレスが公開されることはありません。

名前 *
メール*
URL
Copyright(c) 2010 - 2017 ダリの雑記