HTTP或jquery $ .ajax超时的含义是什么?
问题描述:
当我使用timeout:
参数发出$.ajax
查询,并且符合我的timeout
以致调用error:
时,这是什么意思?
更具体地说: 是否意味着服务器收到请求,但仍在处理它?这可能意味着可能会发生一些影响,所以我可能不得不在服务器上取消它,或者以某种方式使已部分写入数据库的数据无效。
或者这是否意味着我根本无法访问服务器?这是很好的知道,因为那时我不必处理服务器上的部分数据“保存”
或者这是否意味着请求使它成为其中的一部分,现在我们失去了它的踪迹?在这种情况下,我不得不询问服务器,“哦,嘿,关于我之前发送的请求...你有没有得到那个?是啊?好吧,忽略最后保存”
操作系统命令如tracert
请说清楚,可能有许多服务器需要通过TCP命令才能通过,所以如果一个人没有响应,很难判断它是否得到它。但有些协议要求回声被认为是可接收的(所以我不确定是否涉及HTTP或Apache)
答
在放弃之前客户端会等待从服务器收到消息的等待时间。
服务器可能会或可能没有完成其任务。客户知道的唯一方法是通知客户。既然你不想让一个进程或一个人永远等待,通过使用超时你可以在放弃之前指定等待成功的时间。
+0
好的,这就是我的想法。由于物理限制(例如视线无线电),这是最有意义的。 –
首先应该不可能将部分数据写入数据库。如果您需要例如插入多个表开始一个事务 – PeeHaa
是的,除非你写数据在多个AJAX请求(当然,这是不可取的)。这可能发生在批量文件上传或者你可能在创建缩略图服务器端或者因为它太大而不得不单独发布文件数据的地方 –
没有人应该这样做/这样做,因为它允许数据处于这种不一致的状态。 “因为它太大了”Wut?多大? – PeeHaa