运行该过程时codeigniter中的黑屏

时间:2018-07-04 02:10:01

标签: javascript php codeigniter loading

我正在使用codeigniter框架开发php脚本。我的脚本在脚本的开头执行了繁重的数据加载过程。我已使用gif以避免在完成后端过程之前为用户显示空白屏幕。但是,我注意到在视图中使用的gif直到所有其他过程完成后才显示,这是没有用的。

我是否可以运行预加载屏幕,直到其他过程完成?如果可以,我该怎么做?

我尝试添加在顶部包含gif的页面(在运行所有其他进程之前),但还是没有运气,它仅将所有内容与其他视图一起加载。

预先感谢

我的代码如下,

脚本

 <script>
        $(window).load(function() {
        //alert("IN");
        $.ajax({
        method :'GET',
        url: baseUrl+'main/LoadAllitems',
        //type: "GET",
        success:function(data){
        $('.se-pre-con').hide();
        $('#renderer').html(data);
        },
        error:function (){}
        });
    });
    </script>

CONTROLLER

public function LoadAllitems()
	{

		$MenuData['searches']=$this->get_search_form_data();
		$MenuData['dailydeals']=$this->get_daily_deals_data();
		//$MenuData['monthlydeals']=$this->get_monthly_deals_data();
		//$MenuData['featuredproducts']=$this->get_featured_products_data();

		$response=$this->load->view('includes/search',$MenuData,TRUE);
		echo $response;
		$response2=$this->load->view('homepage/dailydeals',$MenuData);
		echo $response2;
		//$this->load->view('homepage/mainslider',$MenuData);
		//$this->load->view('homepage/monthlydeals',$MenuData);
		//$this->load->view('homepage/feature',$MenuData);
		//$this->load->view('homepage/subscribe',$MenuData);
		//$this->load->view('main',$MenuData);

	}

INDEX

public function index()
	{
    $this->load->view('main',$MenuData);
  }

1 个答案:

答案 0 :(得分:0)

首先使用gif加载页面,然后在页面加载时加载。运行一个请求ajax调用以请求所需数据的脚本。顺便说一句,如果您提供代码:视图和控制器,我们可以提供更多帮助。

  

SampleController.php

function index()
{
   $this->load->view('init_view');
}

function ajax_load_data()
{
   ...
   $response = $this->load->view('some_view',$data,TRUE);
   echo $response;
}
  

init_view.php

<div id="loading">SOMEGIF</div>
<div id="renderer"></div>

<script>

 $(document).ready(function(){
         $.ajax({
             method : 'get',
             url    : '<?php echo site_url("samplecontroller/ajax_load_data");?>'
             success: function(responce){
                    $('#loading').hide();
                    $('#renderer').html(responce);
                 }   
         })

   })

</script>
  

some_view.php

<h1><?= $title ?></h1>
<p><?= $intro ?></p>