在我的 php 文件解析和下载数据时调用 preloader(gif , loading image)

Posted

技术标签:

【中文标题】在我的 php 文件解析和下载数据时调用 preloader(gif , loading image)【英文标题】:call preloader(gif , loading image) while my php file parse and download data 【发布时间】:2012-12-25 18:05:02 【问题描述】:

这是我的 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";
);

现在我想调用这个文件进行下载,当它正在下载图像时,我想显示加载图像或进程轮 (.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();
           );

【问题讨论】:

【参考方案1】:

使用这个:

就在 ajax 函数之前:

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

就在ajax函数之后:

$(document).ajaxComplete(function()
   $('#preloader').hide();
);

【讨论】:

你能告诉我相关的演示吗?我无法做到这一点,我按照你的指南做了,但没有工作

以上是关于在我的 php 文件解析和下载数据时调用 preloader(gif , loading image)的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap Modal,在按钮单击时调用 Action Result 方法

连接 SAP Hana 数据库时调用未定义函数 odbc_connect() 消息

URLStream 在我的 flex AIR 应用程序中引发 Error#2029

为啥我的 UICollectionView 支持方法仅在我的 ViewController 设置为初始视图控制器时调用?

我是不是通过在启动时获取一个对象并在我想要持久化数据时调用 save 来正确使用 Core Data?

didUpdateUserLocation 未在重新加载视图时调用