javascript - 运行进程时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);
}
解决方案
最初使用 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>
推荐阅读
- ios - 如何添加约束以使视图的尺寸在方向改变时不会改变?
- sql - SQL Anywhere 错误 - 对“分数”的函数或列引用也必须出现在 GROUP BY 中
- reactjs - 反应无法获取到数组
- html - vba:如何单击 iframe 中的元素
- python - 如何使用 numpy linalg 求解器进行多维使用?
- java - 为什么这段代码打印超类而不是子类的值
- php - 我的代码无法将数据发送到我的 mysqli 数据库,但它没有产生错误
- react-native - 使用任何 react-native 库创建一个简单的 ImageSlider
- javascript - 您的会话已过期。在 ajax 表单上发布 laravel
- javascript - ReactJS 为子组件添加回调函数