![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | トピック |
---|---|
imari | 投稿日時: 2007-4-27 12:56 |
お馴染みさん ![]() ![]() 登録日: 2007-2-9 居住地: 投稿: 19 |
スクリプトのタイムアウトの設定 AS側での処理時間が長くかかってしまい、以下のエラーが出てしまいます。
Application の scriptTimeLimit プロパティをいじれば直るのかと思ったのですが、60に設定しても同様のエラーが出てしまいます。 このようなエラーはFlexアプリ側でタイムアウト時間を延長する等の制御は可能なのでしょうか? もしくは、FlashPlayerの設定が必要なのでしょうか? どなたかご存知の方がいらっしゃいましたらご教示願います。 |
Crono | 投稿日時: 2007-4-27 14:43 |
ご主人様 ![]() ![]() 登録日: 2006-6-21 居住地: 飯田橋/ヴァナディール 投稿: 229 |
Re: スクリプトのタイムアウトの設定 以前クライアントで長時間の処理が必要な機能を作成したときは「MAX」60秒でした。
60秒「待ち時間」をユーザーに対して強いるという「要件」や「設計」は「間違い」=Adobeの「設計思想」かもしれません。 (わたしの勝手な想像です) 以下、対策案: ・実装をがんばって見直して処理自体を高速化し60秒を切る! ・処理を細かい処理に分割したりして、1個1個の処理は60秒ルールに従っているようにFlashPlayerをだます ・要件や設計そのものを見直す(これ、時には必要) |
imari | 投稿日時: 2007-4-27 17:02 |
お馴染みさん ![]() ![]() 登録日: 2007-2-9 居住地: 投稿: 19 |
Re: スクリプトのタイムアウトの設定 >Cronoさま
メッセージでは15秒となっているのですが、やはり60秒ルールなのでしょうか? とりあえずは処理分割をしてだましだましやってみようと思うのですが、FlashPlayerはどのレベルで分割されていると見てくれるのでしょうか? 例えば、あるボタンを押下したときに呼ばれる関数をonClickとしたときに、元々の関数は
といった感じでコーディングすれば分割していると見てくれるのでしょうか? ご存知でしたらご教示いただけないでしょうか? |
venzou | 投稿日時: 2007-4-30 11:16 |
ご主人様 ![]() ![]() 登録日: 2007-1-25 居住地: 穴の中 投稿: 101 |
Re: スクリプトのタイムアウトの設定 こんにちは
![]() 引用: メッセージでは15秒となっているのですが、やはり60秒ルールなのでしょうか? scriptTimeLimit で設定した時間になります。デフォルト60秒、最大60秒です。 エラーメッセージが間違っているだけのようですね。 (実際エラーが出るのは60秒経ってからですよね?) 分割の方法ですが、関数を分けるだけではダメみたいです。 別のイベントとして実行する必要があると思います。 callLater()を使う方法が簡単だと思います。 sample.mxml
test1()、test2()はエラーになります。 test3()はOKです。 ![]() test3()はcallLater()を使って、数珠つなぎに処理を実行します。 1つの処理は、次の処理をセットし、終了します。 この、終了する所が重要ですね。 test4()はまとめてcallLater()を呼んでいますが、エラーになります。 callLater()の処理は、並列で実行されるのではなく、登録した順に実行されます。 登録した処理の合計が、scriptTimeLimitを越えるとエラーになるようです。 |
imari | 投稿日時: 2007-5-1 10:08 |
お馴染みさん ![]() ![]() 登録日: 2007-2-9 居住地: 投稿: 19 |
Re: スクリプトのタイムアウトの設定 venzouさま
確かにエラーが出るのは60秒後みたいです。 15秒のメッセージに惑わされてました。 callLater()でイベント分割しなくてはいけないのですね、勉強になります。 早速試してみたいと思います。 ありがとうございました。 ![]() |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |