【发布时间】:2011-10-31 16:03:10
【问题描述】:
我正在尝试创建一个能够将多个请求排队的运行列表。我能够发出单个请求并将返回附加到正确的 DIV。但是当我发出两个或多个请求时,在返回第一个请求之前,第一个 GET 被网络服务器丢弃(项目约束......),第二个返回被插入到第一个请求的 DIV 中。
编辑:我想确保将相关请求附加到正确的 DIV 中。如果 GET 请求被网络服务器终止,那么我将在 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 社区提出的第一个问题,您好,感谢多年来我从该资源中获得的所有匿名使用。
【问题讨论】:
-
对字符串使用单引号 -> 无需转义 " 例如 var a= 'this is "fine"';
-
好的,好的提示。我试图根据各种猪圈的例子和侥幸的双引号来找到正确的礼仪。我打算搜索最被接受的 js 实践。
-
当你的意思是不工作时发生了什么?还有这里指的url是什么..
-
当我发出两个快速请求并创建两个 DIV 来接收请求时,两个请求中的第一个失败(按预期工作),当第二个请求返回时,它被附加到错误的 DIV (第一个请求被杀死的 DIV)。
-
变量“url”引用表单操作属性。 url 带有转换函数的设置是指两个文件之一(xml 或 xsl)的位置。
标签: jquery jquery-xml