Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测同步POST请求的启动和停止_Javascript_Jquery - Fatal编程技术网

Javascript 检测同步POST请求的启动和停止

Javascript 检测同步POST请求的启动和停止,javascript,jquery,Javascript,Jquery,我有一个简单的HTML表单,它向第二个PHP文件发送一个简单的POST请求: <form method="POST" action="parse.php"> 我是否可以在不使用异步请求的情况下从表单页面检测已完成/开始的下载?当然,我可以知道表单是在何时由onSubmit提交的,但是下载开始或完成时是否会触发jQuery事件?这取决于您使用的jQuery方法 提供了一个名为“success”的方法,该方法在post请求成功完成时调用 提供了一个名为“成功”的方法,与上述方法相同,

我有一个简单的HTML表单,它向第二个PHP文件发送一个简单的POST请求:

<form method="POST" action="parse.php">

我是否可以在不使用异步请求的情况下从表单页面检测已完成/开始的下载?当然,我可以知道表单是在何时由
onSubmit提交的,但是下载开始或完成时是否会触发jQuery事件?

这取决于您使用的jQuery方法

  • 提供了一个名为“success”的方法,该方法在post请求成功完成时调用
  • 提供了一个名为“成功”的方法,与上述方法相同,也提供了一个名为“完成”的方法。无论是否成功,都将调用complete方法
链接的jQuery文档中可以找到它们使用的更多细节和示例

我刚刚注意到,在jQuery1.8之后,我上面提到的两种方法将被弃用,您最好使用
done()
,而不是前面提到的其他方法。请参阅上面链接的文档,了解实现您的目标的新旧方法的使用的详细信息

示例1(已弃用):

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: function(data){
      // Do something with your data here
  },
  dataType: dataType
});
$.ajax({
  url: "http://example.com/url.php",
  type: 'POST',
  data: data
}).done(function( data ) {
    if ( console && console.log ) {
      console.log( "Sample of data:", data.slice( 0, 100 ) );
    }
});
示例2:

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: function(data){
      // Do something with your data here
  },
  dataType: dataType
});
$.ajax({
  url: "http://example.com/url.php",
  type: 'POST',
  data: data
}).done(function( data ) {
    if ( console && console.log ) {
      console.log( "Sample of data:", data.slice( 0, 100 ) );
    }
});

如果使用jqueryajax或类似的调用,则在执行完成后,可以使用回调函数来执行某些函数。我想饼干解决方案对你有用谢谢你的答案!cookie解决方案似乎是可能的。我正在明确地搜索一个非ajax解决方案,如果有的话。通常情况下,你会使用ajax来不断地轮询服务器,以了解下载何时完成,我认为这是最好的解决方案,但在执行多个请求时,PHP会话可能会很棘手,因此请确保清除会话等。为了弄清楚,这更是一个理论问题。当然,我在这个案例中使用了Ajax,但是当我在代码中玩的时候,我开始问自己这个问题,并且找不到一个直接的答案。