当前位置: 首页 > 面试题库 >

使用Laravel 4更新实时数据(如进度条)

郑茂材
2023-03-14
问题内容

我想发送数据以实时更新视图,例如显示动作状态的进度条。laravel 4中做到这一点的最佳方法是什么?

设置

我正在一个基于Laravel 4的项目中,每个用户都可以赎回一个序列号。

我已经创建了一个管理后端,可以在其中轻松粘贴密钥列表或上传密钥文件。

假设$key_string是我已上传的由换行符分隔的键的字符串,并且想要解析然后从中上传包含的键字符串-这是添加键的简化代码:

$key_string = rtrim($key_string);
$key_string = str_replace("\n\r", "\n", $key_string);
$keys = explode( "\n", $key_string);

foreach($keys as $index => $key) {
    Key::create(
        array( "serial" => trim($key) )
    );
}

由于我上传的密钥组数以千计,因此有时可能需要花费30秒钟的时间,在此期间,管理面板自然不会显示任何内容。

现在,我不在乎这段时间。我不需要优化上传就可以使用一个查询,等等,但是我想获得一些实际反馈,因此我知道上传已经进行了多长时间。

问题

当我上传密钥时,我希望能够每隔几秒钟或百分之几的滴答声更新一次视图中的进度条或计数器(使用当前$index

有没有简便的方法可以轻松地处理此问题,最好将其集成在Laravel 4中?我以为这会涉及ajax,但是有人可以指出我正确的方向吗?


问题答案:

使用PHP,实际上有两个选择,而无需进行Web套接字或推挽式设置。这并不是Laravel真正的事情,它更像是一个请求JSON“事物”的AJAX循环。

短轮询

Olark将这种方法用于他们的聊天脚本。

setInterval(function() {
    $.getJSON("/path", function(data) {
        // update the view with your fresh data
    });
}, 5000);

长时间轮询

Java脚本

var eventName = function() {
    $.getJSON("/path", function(data) {
        // update the view with your fresh data
        if (data.progress < 100)
            eventName();
    });
};

控制器逻辑

当我有用户上载CSV并等待其完成上载并得到处理时,才使用此功能。

// in your controller
$check = true;
while ($check) {
    // search database
    // compare values
    if ($newDataWasFound)
        $check = false;

    $progressFromAbove = 90;
}

return Response::json(array(
    'newData' => $array,
    'progress' => $progressFromAbove,
));


 类似资料:
  • 目前,我用flutter构建了一个板球拍卖类应用程序,在每个出价中,它都将在聊天屏幕上显示为聊天,我用Cloud Firestore用streams做了这件事,事情是在一个点之后,云Firestore的阅读量飙升。然后我意识到我只是更新了当前球员的金额(他的出价)。他的出价和出价的球队是唯一不断变化的东西。有了firestore,我可以用流获取所有这些数据,并轻松地将其显示在聊天屏幕上。现在我想改

  • 本文向大家介绍WPF实现进度条实时更新效果,包括了WPF实现进度条实时更新效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了WPF实现一个实时更新的进度条,供大家参考,具体内容如下 效果图 xaml代码 后台代码 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。 

  • 我在Android上用RxJava更新ProgressBar的进度有问题我想在延迟500毫秒后更新1%(从0%- 下面是我的代码:

  • 这个问题几乎说明了一切。使用JPARepository,我如何更新一个实体? JPARepository只有一个save方法,它并不告诉我它实际上是create还是update。例如,我向数据库用户插入一个简单的对象,它有三个字段:、和: 然后我只需调用,此时它实际上是对数据库的插入: 到目前为止还不错。现在我想更新这个用户,比如说改变他的年龄。为此,我可以使用查询,无论是QueryDSL还是Na

  • 本文向大家介绍使用php+swoole对client数据实时更新(一),包括了使用php+swoole对client数据实时更新(一)的使用技巧和注意事项,需要的朋友参考一下 如果想对一个列表做实时的更新,传统的做法是采用轮询的方式。以web为例,通过Ajax定时请求服务端然后获取数据显示在页面。这种方式实现简单,缺点就是浪费资源。 HTTP1.1新增加了对websocket的支持,这样就可以将被

  • 问题内容: 基本上,我正在为外部登录系统执行AJAX请求,如何根据请求的长度来更新进度栏? 例如,请求需要 1.30s 至 1.40s的时间 才能完成,我如何根据特定的间隔更新进度条,例如每10ms进行10%的更新,等等,这是进度条的HTML布局 使用属性确定进度条的长度 想法是基本上让它看起来像是基于请求进行更新,因此当请求完成时,百分比栏已满 问题答案: 我认为这篇文章非常清楚 http://