部分的なページのAJAX更新を活用するASPMVCアプリケーションがあります。画面の1つのパネルでユーザー主導のアクションが発生した場合、jsTree(別のパネル)が更新されていることを確認する必要があります。
ただし、成功の範囲内で行動しようとすると、AJAX呼び出しの一部が機能しません。これは早すぎて発生し、jsTreeはまだこれらのコマンドを受け入れる準備ができていません。後で同じコマンドを実行すると、問題なく機能します。
この問題は次のように回避されました。-AJAXが成功したら、目的のコールバックメソッドを新しいJavascriptクラスに保存します。
var EPCStateMembers =
{
_callbackMethod: "",
StoreCallback: function (callbackMethod)
{
EPCStateMembers._callbackMethod = callbackMethod;
},
UseCallback: function ()
{
if (EPCStateMembers._callbackMethod != "")
EPCStateMembers._callbackMethod();
EPCStateMembers._callbackMethod = "";
}
}
AJAXの成功の中で、EPCStateMembers.StoreCallback()を呼び出します
次に、jsTreeの準備ができたら(独自のイベントreselect.jstreeで示されます)-呼び出します
EPCStateMembers.UseCallback();
機能的には、このソリューションは機能します。
ただし、gotoソリューションとして一時的なJavascriptステートストアーに辞任する前に...質問したいのですが、そのような状況ではより良いパターンやプラクティスが存在しますか?