Members
(static) ajax :Object
このパラメータはオブジェクトで、以下のプロパティを持ちます
- retryCount
- 一時的な通信エラーが発生した場合に通信をリトライする回数。デフォルトは0で、リトライを行いません。
- retryInterval
- 一時的な通信エラーが発生した場合に通信をリトライするまでの待ち秒数(ミリ秒)。
通信エラーが発生した場合、ここで指定した秒数待ってからリクエストを送信します。デフォルトは500msです。 同期(async:false)でh5.ajaxを呼んだ場合はretryIntervalは無視され、即座にリトライします。 (同期で呼んだ場合は必ず結果が同期で返ってきます。)
- retryFilter
- リトライ時に実行する関数を登録できます。
リトライが有効な場合、呼び出しが失敗した場合に呼ばれます。 (失敗か成功かは、jQuery.ajaxの結果に基づく。200番台、304番なら成功、それ以外は失敗。)
retryFilterに設定した関数がfalseを返した場合はリトライを中止し、それ以外を返した場合はリトライを継続します。 (retryCountに設定した回数だけリトライをしたら、retryFilterの戻り値に関わらずリトライを中止します。)
デフォルトで設定してあるretryFilterは、「メソッドがGET、かつ、コネクションタイムアウトで失敗した場合のみリトライする」 ようになっています。
この挙動を変えたい場合は、以下のようにしてretryFilter関数を差し替えます。
h5.settings.ajax.retryFilter = function(jqXHR, textStatus, thrownError) { // この関数のthisはh5.ajax()呼び出し時のパラメータオブジェクトです。 // thisを見ると、メソッドがGETかPOSTか、等も分かります。 console.log('Ajax呼び出し失敗。textStatus = ' + textStatus); return false; // 明示的にfalseを返した場合のみリトライを中止する }
$(document).bind('h5preinit', function() {
h5.settings.ajax = {
retryCount: 3,
retryInterval: 500,
retryFilter: function(){...}
};
});
また、h5.ajax()の呼び出しパラメータで指定すると、呼び出しごとに設定を変えることもできます。 指定しなかったパラメータはh5.settings.ajax
のパラメータが使われます。
h5.ajax({
url: 'hoge',
retryCount: 1
});
// この場合、retryCountだけ1になり、retryIntervalとretryFilterはsettingsのものが使われます。
Type:
- Object
(static) aspects :Aspect|Array.<Aspect>
Type:
- Aspect | Array.<Aspect>
(static) commonFailHandler :function
failコールバックが一つも設定されていないDeferredオブジェクトがrejectされたときにcommonFailHandlerに設定した関数が実行されます。
commonFailHandlerが実行されるDeferredオブジェクトは、h5.async.deferred()で作成したDeferredオブジェクトかhifive内部で生成されているDeferredオブジェクトだけです。 jQuery.Deferred()で生成したDeferredオブジェクトは対象ではありません。
commonFailHandlerの引数と関数内のthisは通常のfailハンドラと同様で、それぞれ、rejectで渡された引数、rejectの呼ばれたDefferedオブジェクト、です。
サンプル
// commonFailHandlerの登録 h5.settings.commonFailHandler = function(e) { alert(e); }; // Deferredオブジェクトの生成 var dfd1 = h5.async.deferred(); var dfd2 = h5.async.deferred(); var dfd3 = h5.async.deferred(); dfd1.reject(1); // alert(1); が実行される dfd2.fail(function() {}); dfd2.reject(2); // failコールバックが登録されているので、commonFailHandlerは実行されない var promise3 = dfd3.promise(); promise3.fail(function() {}); dfd3.reject(3); // promiseオブジェクトからfailコールバックを登録した場合も、commonFailHandlerは実行されない h5.ajax('hoge'); // 'hoge'へのアクセスがエラーになる場合、commonFailHandlerが実行される。 // エラーオブジェクトが引数に渡され、[object Object]がalertで表示される。 // h5.ajax()の戻り値であるDeferredオブジェクトが内部で生成されており、 // そのDeferredオブジェクトにfailハンドラが登録されていないためである。 var d = h5.ajax('hoge'); d.fail(function() {}); // failハンドラが登録されているため、commonFailHandlerは実行されない
デフォルトの設定
h5.settings.commonFailHandlerのデフォルト値はnullです。共通のエラー処理はデフォルトでは何も実行されません。 commonFailHandlerでの処理を止めたい場合は、nullを代入して設定をクリアしてください。
h5.settings.commonFailHandler = null;
Type:
- function
(static) dynamicLoading :Object
このプロパティはオブジェクトで、
h5.settings.dynamicLoading.retryCount = 3;
のようにして設定します。dynamicLoadingで指定できるプロパティ:
- retryCount
- 一時的な通信エラーが発生した場合に通信をリトライする回数(デフォルト:3)
- retryInterval
- 一時的な通信エラーが発生した場合に通信をリトライするまでの待ち秒数(ミリ秒)。通信エラーが発生した場合、ここで指定した秒数待ってからリクエストを送信します。(デフォルト:500)
Type:
- Object
(static) listenerElementType :Number
- 1 (default) : jQueryオブジェクト
- 0 : ネイティブ形式(DOM要素そのもの)
Type:
- Number
(static) log :Object
Type:
- Object
(static) res :Object
以下のプロパティの設定を行ってください
- baseUrl
- type:string|null
- ベースURL。デフォルトはnullで、リソースパス解決時のブラウザのアドレスバーの(ファイル名部分を除いた)パスがカレントパスになります(空文字を指定した場合もnullと同じです)
- resolveTimeout
- type:integer
- タイムアウト時間設定(ms)を設定。タイムアウトに設定された時間待機して、依存解決ができない場合、resolve()は失敗します。デフォルトは10000(10秒)です。
Type:
- Object
(static) scene :Object
以下のプロパティの設定を行ってください。
- followTitle
- type:boolean
- メインシーンコンテナでブラウザタイトルの追従を行うか(デフォルトtrue)
- clientQueryStringPrefix
- type:string
- シーン遷移パラメーター識別用プレフィクス。デフォルト空文字
- clientFWQueryStringPrefix
- type:string
- シーン遷移パラメーター識別用プレフィクス(FW用)。デフォルト"_h5_"
- urlHistoryMode
- type:string
- メインシーンコンテナURL履歴保持方法(h5.scene.urlHistoryMode参照)。デフォルトは"'history"
- urlMaxLength
- type:integer
- シーン遷移先URL最大長。デフォルト1800
- baseUrl
- type:string|null
- ベースURL。デフォルトはnullで、hifiveを読み込んだページがカレントパスになります(空文字を指定した場合もnullと同じです)
- autoInit
- type:boolean
- ページロード時にドキュメント全体を探索して、DATA属性によるコントローラーバインドとシーンコンテナ生成を行うかどうか。デフォルトfalse
Type:
- Object
(static) trackstartTouchAction :String
デフォルトは"none"で、h5trackstartイベントがバインドされた要素はタッチ操作でスクロールされないようになります。
nullを設定した場合はtouch-actionへの値の設定は行いません。
Type:
- String