我希望每隔5秒使用来自RS的不同POST值进行jQuery POST。 以下代码有效,但该函数等待5秒并立即发送POST中的所有数据,而不是发送一个POST,等待5秒,发送下一个POST,等待5秒等等。 我一直在为此苦苦挣扎一周。我尝试了一个setinterval和一个数组,但没有。任何帮助将受到高度赞赏。
<% while ((Repeat1__numRows-- != 0) && (!varmin.EOF)) { %>
<script type="text/javascript">
$(document).ready(function() {
var phoneval = "<%=(varmin.Fields.Item("phone").Value)%>"
var smsval = "<%=checkinactive.Fields.Item("audio").Value%>"
setTimeout(function(){
$.post("Trigger.aspx", { phone: phoneval,
sms: smsval }, function(data) {
$("#status p").html(data);
});
},5000);
return false;
});
</script>
<% Repeat1__index++; varmin.MoveNext(); } %>
答案 0 :(得分:1)
这些方面的东西应该有效,但我仍在质疑这个剧本的重点。
<script type="text/javascript">
jQuery(function ($) {
var values = <%=
/**
* Produce JSON formatted array on the server, like:
* [{ phone : 123456, sms : 7891011 }, { phone : ... }, ...]
**/
%>;
var i = 0;
var interval = setInterval(function () {
if (!values[i]) {
window.clearInterval(interval);
return false;
}
$.post("Trigger.aspx", values[i++], function (data) {
$("#status p").html(data);
});
}, 5000);
});
</script>
答案 1 :(得分:0)
我添加了一个JSON数组并且工作了!
<%
var tempOutput = "";
while ((Repeat1__numRows-- != 0) && (!varmin.EOF))
{
var phoneVal = varmin.Fields.Item("phone").Value;
var smsVal = checkinactive.Fields.Item("audio").Value;
tempOutput += "{\"phone\":\"" + phoneVal + "\", \"sms\":\"" + smsVal + "\"},";
Repeat1__index++;
varmin.MoveNext();
}
%>
<script type="text/javascript">
jQuery(function ($) {
var values = output;
.....