2012年08月02日
川俣晶の縁側ソフトウェア技術雑記total 5164 count

jQuery使用時に定義されているはずのオブジェクトが未定義と言われる問題

Written By: 川俣 晶連絡先

 何日間悩んだか分かりません。しかし、やっとどうやら原因を突き止めたようです。

問題 §

 jQueryとjQuery Mobileを"code.jquery.com/mobile"を参照しているページで、キャッシュクリア直後に開いたとき、しばしば定義済みであるはずのオブジェクトが定義されていないエラーになる。ずっとロード中で戻って来ないこともある。

原因 §

 "code.jquery.com/mobile"が返すデータが不正となるケースがある。これが空の時は、読み込みエラーにはならないが、オブジェクトが見つからないエラーになる。データを返せないときには永遠にロード待ちになる場合もある。キャッシュにある時には問題が起きないので、キャッシュクリア後に発覚する。

 特定環境だけの問題か否かは分からない。

解決 §

 script要素で"code.jquery.com/mobile"を参照しない。別のCDNを使うか.jsファイルをローカルに置く。

感想 §

 まるで非同期にスクリプトを読み込んでいるかのような挙動だったので間違った方向で探索を続けてしまいました。しかし、結果はこんなもの。しかし、一時は迷宮入りかと思った問題ですが、諦めないで調査して良かったなぁ。

 おかげでスクリプトのロード関係はかなり詳しくなりましたよ。beforescriptexecuteイベントとafterscriptexecuteイベントはFirefoxには実装されているがIE10には実装されていないとか、jqueryMobile使用時にbody下のscript要素は2回評価される(ツリーの再構成が行われるから)が、head以下なら1回だとか、そういった変なことまで分かりましたよ。

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2012年
08月
04日
Hello Worldを無駄に非同期で書いてみる in C#
3days 0 count
total 4029 count
【技術雑記】の前のコンテンツ
2012年
07月
27日
アップルがウェブブラウザ「Safari」のWindowsサポートを打ち切りか
3days 0 count
total 2991 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20120802143849
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.