複数のリクエストをキューに入れる機能を備えたランニングリストを作成しようとしています。私は単一のリクエストを行うことができ、リターンを正しいDIVに追加することができます。しかし、2つ以上のリクエストを行うと、最初のリクエストが返される前に、最初のGETがWebサーバーによって破棄され(プロジェクトの制約...)、2番目のリターンが最初のリクエストのDIVに挿入されます。
編集:関連するリクエストが正しいDIVに追加されるようにしたいと思います。GETリクエストがWebサーバーによって終了された場合は、error:{textStatus}
設定に関数を追加し、divにストックテキストを追加して、ユーザーにエラーを警告します。
jQueryプラグイン「Transform」を使用しています。
JS:
<script type="text/javascript">
$(function() {
var evtIncrmt = 0
$("#searchForm").submit(function (event) {
event.preventDefault();
evtIncrmt = evtIncrmt + 1
var $form = $(this),
//term = $form.find('input[name="cmdtextbox"]').val(),
url = $form.attr('action');
cmdInput = "<M ID=\"Input_MSGID\"><R ID=\"AscString_RECID\">OPD</R></M>"
$( "#listContainer" ).prepend( $(document.createElement( "div" ))
.attr({ id: evtIncrmt + "entry", title: "photo by a cohen" })
.text( "This is Event Number " + evtIncrmt )
);
$( "#" + evtIncrmt + "entry" ).append( $(document.createElement( "div" ))
.attr({ id: evtIncrmt + "entryXmlReturn", title: "review by w mitchell" })
.text( "Waiting for response. . " )
);
console.log("event increment before ajax call" + evtIncrmt);
$.ajax({
type: "GET",
timeout: 120000, /* 2mins */
context: "#" + evtIncrmt + "entryXmlReturn",
url: url,
data: {
XMLString: cmdInput ,
uqid: evtIncrmt
},
dataType: "text",
success: function (xmlReturn) {
console.log("event increment inside transform" + evtIncrmt);
$( "#" + evtIncrmt + "entryXmlReturn" ).transform({
xmlstr: xmlReturn,
xsl: { url: "xsl/StaticStyle.xsl" }
});
}
});
});
});
</script>
html:
<html>
<body>
<div class="links">
<form action="/" id="searchForm">
<input type="input" name="cmdtextbox" value="OPD" />
<input type="submit" value="Search" />
</form>
</div>
<div id="loadHTMLajax"></div>
<div id="listContainer">
<div id="2staticEntry">This is entry two.</div>
<div id="1staticEntry">Hello oldest entry number ONE</div>
</div>
</body>
</html>
意図したとおりに機能しないことに加えて、この機能を作成する際にベストプラクティスを使用しなかったと確信しています。コードをより適切に記述できる領域を見つけた場合は、遠慮なく批判してください。
これはstackoverflowコミュニティへの私の最初の質問です。こんにちは、そして私が長年にわたってこのリソースから得たすべての匿名の使用に感謝します。