首页 > 解决方案 > 运行进程时codeigniter中的空白屏幕

问题描述

我正在使用 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>

控制器

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);

	}

指数

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

标签: javascriptphpcodeigniterloading

解决方案


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

示例控制器.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>

推荐阅读