編集 ページは初めてajax呼び出しを行います。次に、ページの DOM を変更します。そのため、次にユーザーがリンクをクリックすると、ページは ajax 呼び出しを行いません。ダイアログで open メソッドを呼び出すだけです。そのため、その行は ajax 呼び出しの一部ではありません。ユーザーがリンクを 2 回目にクリックすると、ダイアログがより速く表示されると思っていましたが、そうではありません。そのはるかに遅いです。誰でも説明できますか?
私のページには、jquery ダイアログを開くリンクが含まれています。リンクの背後にあるコードは
popup = $("#div").dialog({
autoOpen: false,
minHeight: 600,
width: 1000,
modal: true,
resizable: false,
draggable: false,
position: { my: "top center" },
closeText: "Cancel",
buttons: {
"Add": function () {
$("#frm").submit();
$(this).dialog("close");
},
"Cancel": function () {
$(this).dialog("close");
}
}
});
//get data for dialog
$.ajax({
url: "/ControllerMethod/Controller",
dataType: "html",
data: "personID=" + personId + "&evidencetype=" + eType,
success: function (data, event, xhr) {
$("#div").html(data);
}
});
popup.dialog("open");
注: popup、personId、eType は以前に定義されています。
ajaxが呼び出すコントローラーメソッドはこれです
public ActionResult ControllerMethod(string category)
{
Model1 model = new Model1();
Model2 cat = new Model2(category);
model.property.Add(cat);
return PartialView("view", model);
}
このモデルには約 1200 行が含まれています。1 回目は期待どおりにダイアログが表示されますが、2 回目は、スクリプトの実行に時間がかかりすぎるというスクリプト エラーが生成されます。
1) スクリプト エラーを取り除き、2) 適切な時間内にダイアログを表示するにはどうすればよいですか?
ありがとう