我正在使用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);
}
答案 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>