0

这是我的 php 文件,它正在从服务器下载图像和数据文件

<?php 
        header("Cache-Control: no-cache, must-revalidate");
        //header("Expires: Tue, 25 sep 2012 09:00:00 GMT+5.30");
        header("Content-Type: application/xml; charset=utf-8");
        clearstatcache();
 // download xml.....................................................   
        $url = "http://ippaddress/msn/getdata.php?result=3";
        //echo $url;
        $filename = "E://wamp/www/msn_mytype01-12-12/test.xml";

        $handle = file_get_contents($url);  
        file_put_contents($filename, $handle);      
        $doc = new DOMDocument();
        $doc->load( 'test.xml' );


        $employees = $doc->getElementsByTagName( "detail" );
        foreach( $employees as $employee )
        {
            $id = $employee->getElementsByTagName( "image" );
            $imgid = $id->item(0)->nodeValue; 
            // download Images.........................
            $imageUrl = "http://ippaddress/msn/IMAGE/".$imgid;
            $filename = "E://wamp/www/msn_mytype01-12-12/Images/".$imgid;
            $handle = file_get_contents($imageUrl); 
            file_put_contents($filename, $handle);          
        }       
        echo('XML Downloded-Successfullyy');

?>

我从 j-query 按钮单击事件调用这个 php 文件...如下

$(document).on('click','#syncdata',function(){
    window.location.href="downloadfiles.php";
});

现在我想要 tp 调用这个文件进行下载,当它正在下载图像时,我想显示加载图像或进程轮 (.gif) 文件,当它完成下载这个图像时,它会从文件返回到我的 jquery/html 文件被调用;我也用 ajax 试过这个,但我的图像没有显示我不知道为什么?. 这两个文件都在同一个文件夹中,但是当我单击按钮并下载图像时,它不会回调到我的 html/juery 文件并且不显示预加载的 .gif 图像

下面是我如何使用ajax

  $(document).on('click','#test',function(){
                       makeRequest();
               });        
               function makeRequest(){
           var sendurl={address:'htp://localhost:8082/BMS_mytype/downloadfiles.php'}
                       $('#preloader').show();
                       $.ajax({
                               type:"POST",
                               url:"dummycall.php",
                               data:sendurl,                                
                               success:function(xml){
                                       alert(xml);
                                       var result= $(xml).find('status').text();
                                       if(result == "Success")
                                       {                
                                        $('#preloader').hide();
                                        window.location.href="option.html";
                                       }
                                       callback.call(null);
                               },
                               error: function(){
                                       alert("An error occurred while processing XML file.");
                               }        //error ends..                        
               });

               $('#preloader').hide();
           });
4

1 回答 1

1

use this:

just before ajax function:

$(document).ajaxStart(function(){
   $('#preloader').show();
});

just after ajax function:

$(document).ajaxComplete(function(){
   $('#preloader').hide();
});
于 2013-01-11T07:28:00.983 回答