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

时间:2014-07-01 09:33:19

标签: javascript jquery

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

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

parse.php生成一个要下载的文件,并将其发送到输出缓冲区,标题为

header("Cache-Control: private");
header("Content-Type: application/stream");
header("Content-Disposition: attachment; filename=test.html");

我可以在不使用异步请求的情况下从表单页面检测已完成/已启动的下载吗?当然,我可以找出onSubmit提交表单的时间,但下载开始或结束时是否会触发jQuery事件?

1 个答案:

答案 0 :(得分:2)

这取决于您使用的jQuery方法。

  • jQuery.post() 提供了一种名为&#34; success&#34;当邮件请求成功完成时调用。
  • jQuery.ajax() 提供了一种名为&#34; success&#34;与上面相同,以及一个名为&#34;完成&#34;。无论是否成功,都会调用完整的方法。

可以在链接的jQuery文档中找到有关其用法的更多详细信息和示例。

我刚刚注意到上面提到的两种方法将在jQuery 1.8之后弃用,你最好使用done()而不是其他提到的方法。请参阅上面链接的文档,了解有关实现目标的新方法和新方法的使用情况的详细信息。

示例1(已弃用):

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: function(data){
      // Do something with your data here
  },
  dataType: dataType
});

示例2:

$.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 ) );
    }
});