S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

Ajax通信とブラウザ操作

MyFaces 1.2.3/Trinidad 1.2.9
事象は、下記のようなフォームで発生する。
tr:selectOneListboxタグを使って、リストから1件選択が可能となる。
リストから1件選択すると、関連するデータがコンボボックス(tr:selectOneChoiceタグ)で選択可能となる。
リストから1件選択したタイミング(onchange)で、コンボボックスで選択可能なデータを、Ajaxにより取得している。


リストの中身を”高速”にクリックして何度も切り替えると、途中でマウスカーソルが砂時計になって、操作不能になることがある。
IE7で発生し、FF3.0.7では発生していない。
止まってしまった瞬間に、リストで選択状態となったデータのAjaxリクエストは、送信されていない。
サーバサイドは、1つ前に選択されたデータに対する処理までとなっている。


そこで、tr:selectOneListboxタグのpartialTriggers属性に自分自身のID(リストのID)を設定すると、この事象は発生しなくなった。(再現しなくなった)


ちなみに上記のAjax通信は非同期で行われ、1つ前のリクエストが完了する前に、次のリクエストを送信している。
しかし、2つめのリクエストを送信後、マウスカーソルが砂時計になり、ブラウザ側で操作できない状態になる。(readyStateは未確認)
この事象と関係あるかと思ったが、関係はないらしい。