admin管理员组文章数量:1429841
Here is my scenario:
-I'm processing an excel file that'll took about ~10 minute
-While processing, I want to send a feedback to user that we are currently processing
My idea was using Session that will put value while processing, and get that Session using javascript in current view
Here's my script:
<script type="text/javascript">
$(document).ready(function() {
var element = document.getElementById("progress");
setInterval(
function(){
element.innerHTML = "{{Session::get('progress')}}";
},500
);
});
</script>
And somewhere in my controller, let's just say like this:
$i = 0;
while(!$done){
processingComplicated();
Session::put('progress', $i);
Session::save();
}
And my basic view :
<div id="progress">0</div>
Basically, I want the current page to get the Session data and update the view(id="progress"), but the it won't change.
Can it be done? Thanks.
Here is my scenario:
-I'm processing an excel file that'll took about ~10 minute
-While processing, I want to send a feedback to user that we are currently processing
My idea was using Session that will put value while processing, and get that Session using javascript in current view
Here's my script:
<script type="text/javascript">
$(document).ready(function() {
var element = document.getElementById("progress");
setInterval(
function(){
element.innerHTML = "{{Session::get('progress')}}";
},500
);
});
</script>
And somewhere in my controller, let's just say like this:
$i = 0;
while(!$done){
processingComplicated();
Session::put('progress', $i);
Session::save();
}
And my basic view :
<div id="progress">0</div>
Basically, I want the current page to get the Session data and update the view(id="progress"), but the it won't change.
Can it be done? Thanks.
- It can't be done the way you want - you'll need to have the page reload in order to actually get fresh session data. A lot of people do this using an iframe or using AJAX - the main point is that you need to actually load the PHP file to get the updated value, you can't just put the session var in your page somewhere and expect it to magically update without updating the page. – alexrussell Commented May 11, 2015 at 9:39
1 Answer
Reset to default 2Use AJAX
to update the view
$(document).ready(function() {
var element = document.getElementById("progress");
setInterval(
function(){
$.get( "processing-status", function( data ) {
element.innerHTML = data;
});
},500
);
});
And in your routes, controller or wherever you want
Route::get('/processing-status', function()
{
return Session::get('progress');
});
本文标签: phpLaravel get Session with javascript while loadingStack Overflow
版权声明:本文标题:php - Laravel get Session with javascript while loading - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745554251a2663085.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论