我的资源有限的小型网络服务器出现问题:
该设备是一个带网络接口的嵌入式控制器,使用网页进行配置。
数据以json
格式和后置方式进行交换。
问题在于:我的设备一次只能提供一个缓冲区大小的一个帖子请求。
为了测试它,我创建了一个包含多个帖子的页面,用于将数据发送到我的服务器。我用浏览器Firefox 4.0打开页面,浏览器尝试打开多个套接字以并行处理所有请求。
如何创建顺序流消息? (我不担心速度)
这是我打算继续进行的一个小例子,但是这个解决方案打开了两个套接字,用于向我的服务器发送两个帖子请求并中止其中一个。
for (var j=0; j<2; j++) {
// read page data and create objdata
jdata = JSON.stringify(objdata);
// alert("I am about to POST this:\n\n" + jdata);
$.post(
'prgtimetbl.json',
jdata,
function(data) {
// alert("Response: " + data);
},
"json"
);
}
答案 0 :(得分:0)
使用jQuery使用$.ajax和async: false
:
$.ajax({
type: "POST",
url: "some.php",
async: false,
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
答案 1 :(得分:0)
Cixate比我快,但我使用异步排队请求的方法略有不同。
代码:
$(document).ready(function(){
var stuffToPost = [{name:'obj1',id:1},{name:'obj2',id:2},{name:'obj3',id:3}];
var postIndex = 0;
var postNext = function() {
if (postIndex < stuffToPost.length)
{
$.ajax({
type: 'post',
url: '?',
data: JSON.stringify(stuffToPost[postIndex]),
success: function(data) {
alert('Data '+stuffToPost[postIndex].id+' was sent successfully');
postIndex++;
postNext();
},
error: function() {
alert('Something bad happened. Stopping');
}
});
}
else if (postIndex == stuffToPost.length)
{
alert('All data is sent !');
}
};
postNext();
});