如何通过POST发送数据?

时间:2010-09-06 10:48:50

标签: jquery queue

欢迎,

我有疑问。

在我的网站上,我形成了允许用户通过POST(ajax)提交数据的内容。 问题是,当用户提交字段时,ajax启动请求...如果服务器是空闲的,或者用户网络很快,则一切工作都非常顺利。 用户可以非常快速地发送消息,并且一切正常。

但是如果服务器过载或用户连接速度慢,当他按下发送时,他必须等到功能完成他的工作。

我想知道,可以在Jquery中创建某种类型的queque。

例如我会得到

function send_message()
{

//conditions
if, not empty, les then xx words, etc
//conditions

//if conditions ok
add_to_sedn_queque($somedata);
//if conditions ok

}

这应该立即执行。

add_to_sedn_queque()< - 我只是假装它,以显示我想要的东西。

那么这个功能,应该用post发送我的功能。 从最旧到最新的请求。

我不是要求你为我写信发送,我已经让它工作了。

如何创建该队列,可以是简单的例子。

此致

1 个答案:

答案 0 :(得分:1)

我会使用.queue() :)像这样:

function add_to_send_queque(data) {
   $(document).queue('ajaxQueue', function(n) {
      $.ajax({
        url: "something",
        type: "POST",
        data: data,
        complete: n
   });
}

这样做可以将您的来电挂在名为document的{​​{1}}上的自定义队列中。当每个请求完成时(如果需要,添加ajaxQueue方法,它不会影响这个),它会调用队列中的下一个项目,或者让队列保持打开状态以便立即执行下一个(如果是刚刚完成的是排队的最后一个。)

请务必在此使用success,而不是complete来调用success,因此无论是否存在错误都会触发...否则您的队列将在那里等待。< / p>

或者,如果您需要/想要更多选项/控制,有些插件可以执行此操作,而且更多,the ajaxManager plugin是此处的顶级选项之一。