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

2023-12-03

TL;DR

我想发送数据以在视图中实时更新,例如进度 显示操作状态的栏。 在 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 Sockets 或 Push-Pull 设置。这实际上并不是 Laravel 的东西,它更像是一个请求 JSON“东西”的 AJAX 循环。

短轮询

Olark 在他们的聊天脚本中使用了这种方法。

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

长轮询

JavaScript

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

我使用 Laravel 3 制作了一个截屏视频,但长轮询与 PHP 相关,而不是与 Laravel 相关。https://www.youtube.com/watch?v=LDgJF77jELo

Examples

  • https://gist.github.com/clouddueling/5239153
  • https://gist.github.com/clouddueling/6296036
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Laravel 4 更新视图中的实时数据(如进度条) 的相关文章

  • Yii2 - 错误请求 (#400) |前端和后端cookie

    仅当我打开时才会出现此问题frontend and backend在相同的browser 设想 与后端交互 gt 切换选项卡 gt 与前端交互 gt 切换选项卡返回 gt 与后端交互 gt 错误请求 400 Cookie 后端 identi
  • 如何从网站网址中隐藏 .html 扩展名

    我知道这个问题以前曾被问过 但有人知道隐藏 html 扩展名的好方法吗 我已经尝试了许多代码和许多答案https stackoverflow com https stackoverflow com 但我没有看到结果 那是我再问你一次 我有一
  • 如何在 PHP 的 HTML 页面中显示错误消息?

    我有以下登录表单 login php 其中要求输入用户名和密码
  • PDO PHP 连接,致命错误

    我的连接类 firstcode php class DB functions public db function construct try db new PDO mysql localhost dbname xxx charset ut
  • 覆盖 FOS 用户包中的“更改密码”模板

    我做了一些研究 遗憾的是找不到任何帮助 因此 我将 FOSUserBundle ChangePasswordAction 渲染到我的模板中 但它显示供应商提供的默认模板 我的渲染控制器的模板 block body h2 Einstellun
  • 在 foreach 中使用 QueryPath 的多个查找

    我正在使用 QueryPath 和 PHP 这发现 eventdate 没问题 但不会为 dtstart 返回任何内容 qp htmlqp url foreach qp gt find table schedule gt find tr a
  • 使用 XPATH(和 PHP)从样式属性中选择背景 url

    我只想从此背景图像样式属性中选择 url 这可以通过 XPATH 实现吗 a href http www test com style background image none test a 我有类似的东西 url xpath gt qu
  • 使用 jQuery 从 CKEditor 的 iframe 中获取内容

    我有一个自定义编写的 CMS 它使用CKEditor http ckeditor com FCKEditor v3 用于编辑内容 我也在使用jQuery 验证 http bassistance de jquery plugins jquer
  • Facebook PHP-SDK 页面刷新后似乎丢失了 userID

    我似乎登录工作正常 我可以登录 接受应用程序 第一次 然后显示用户信息 例如姓名 图片 等 然而 当我刷新页面时 userid 又回到 0 我必须再次登录 我不确定问题是什么 我必须在每次页面加载时重新启动它还是什么 我不知道 我会发布一些
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 如何将 Laravel-5.6 转换为 .exe

    我正在本地主机中加载项目 我的管理员要求我将 laravel 5 6 与 mysql 一起转换为 exe 我是这方面的新手 不知道 有哪位高手可以指导一下吗 提前致谢 我不确定你的管理员是否应该要求你将 Laravel 项目转换为 exe
  • 通过互联网IP地址从一台计算机访问xampp到另一台计算机

    我试图从另一台计算机访问我的 xampp 它显示为禁止错误 然后我在 google 上搜索答案 因为他们告诉在 apache 文件夹中的 httpd conf 文件中更改一些设置 如下所示 Order Deny Allow Deny fro
  • Nginx 502 网关错误。通过增加buffer来解决。为什么?

    我正在设置 LEMP 堆栈来运行 Drupal 我安装了 Nginx 和 PHP FastCGI Nginx 工作正常 但任何运行 PHP 的尝试都会出现错误 502 Bad Gateway 谷歌很快发现 nginx 502 错误网关 ht
  • 如何处理 REST api 中的 php 通知、警告和错误?

    在 REST API 中 200 响应表明操作成功 PHP 默认情况下直接在响应正文中输出错误消息 而不更改响应代码 在 SPA 中 用户无法直接看到响应文本 因此 当应用程序未按预期工作时 我通过 FireBug 检查响应正文 以检查可能
  • PHP 接口有属性吗?

    PHP 中的接口有属性 还是只有方法 您可以在 DocBlock 中为接口声明属性 然后 IDE 将提示接口的这些属性 PhpStorm 会这样做 但这不会强制在实现类中实际实现这些字段 例如 property string passwor
  • php - 解析html页面

    div divbox div p para1 p p para2 p p para3 p table class table tr td td tr table p para4 p p para5 p 有人可以告诉我如何解析这个 html
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • PHP 表单 - 带验证蜜罐

    我有以下内容 效果很好 但对垃圾邮件机器人开放 我想放入蜜罐 而不是验证码 下面的代码适用于验证姓名 电子邮件 消息 但我无法让它与蜜罐一起工作 任何人都可以查看 蜜罐 代码并告诉我如何修复它吗 我希望表单给出 success2 不允许垃圾
  • 矩形超出边界是什么意思

    PPB Graphics2D PaintImageData 矩形超出界限是什么意思 我几乎在我检查的每一段代码中都看到了它 最新的代码是 define my consumer key define my consumer secret oa
  • PHPUnit - 模拟 S3Client 无法正常工作

    库 aws aws sdk php 2 PHP 版本 PHP 5 4 24 cli 作曲家 json require php gt 5 3 1 aws aws sdk php 2 require dev phpunit phpunit 4

随机推荐

  • WPF WebBrowser 控件中的持久 cookie?

    我正在使用 WPF WebBrowser 在应用程序内显示在线帮助 只是一些小网页 其中一些页面使用 cookie 仅在页面被查看的前几次显示项目 这是 为什么不尝试 X 类型的事情 但是 由于某种原因 cookie 似乎无法在 WebBr
  • 模糊效果 CSS3 Firefox(linux)

    如果用户未注册 我试图在我的相册上获得模糊效果 我明白了 但仅限于 chrome 在我的 Firefox 14 0 1 linux 中我无法让它工作 我的html模板 我在django下开发 h2 Gallerie h2 ul class
  • matplotlib 3D 图,plot_surface 黑色

    我有以下数据 https www dropbox com s u7ee09chaixw5vb draw dl 0 它是使用python3中的pickle保存的 它只是一个二维的python列表 形式为z 我使用以下代码绘制 3D 图形 但它
  • 命名空间的自定义配置节问题的智能感知

    我刚刚滚动了一个自定义配置部分 为 Intellisense 创建了一个随附的架构文档 并将其添加到 Web config 的 Schemas 属性中迈克尔 斯图姆的回答另一个类似的问题 不幸的是 可能由于我以有限的知识手工创建 XSD I
  • 如何使用字符串设置 jQueryUI Datepicker 的 minDate/maxDate?

    jQueryUI 日期选择器文档指出可以使用 当前日期格式中的字符串 来设置 minDate 选项 所以我尝试了以下方法来初始化日期选择器 input date datepicker minDate 01 01 2010 maxDate 1
  • 融合具有列模式的 data.table

    我有一个data table看起来像这样 id A1g hi A2g hi A3g hi A4g hi 1 2 3 4 5 我想melt这张表看起来像这样 id time hi 1 1 2 1 2 3 1 3 4 1 4 5 我尝试过这样的
  • 连接 __contains 和 __in 最简单的方法是什么?

    我正在做标签搜索功能 用户可以观察很多标签 我将所有标签都放在一个元组中 现在我想找到包含列表中至少一个标签的所有文本 象征性 text contains in asd dsa 我唯一的想法是循环 例如 q text objects all
  • “分段错误”与“运行时”错误? [复制]

    这个问题在这里已经有答案了 考虑一下这段代码片段 char str hellow Ghost str 0 z printf s str 这是一个分段错误 它还会出现运行时内存错误吗 我对分段错误的理解是 当您访问不属于您的内存时出现分段错误
  • Spring Boot 无法拦截执行器访问

    在Spring Boot 2 1 6版本中无法拦截访问执行器请求现在我有一个全局拦截器 Component public class ServiceFilter implements HandlerInterceptor log4j sta
  • 提升以固定单子变压器堆栈的“内部”

    假设我有一个IO Int包裹在一个StateT MyState 那么我的值为State MyState Int我想在堆叠单子中使用它 我如何在这种内在的意义上提升它 我已经知道使用lift or liftIO如果我得到与内部兼容的东西 我只
  • 编译为字节码,Java 与 Python。造成所用时间差异的原因是什么? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 Java 和 python 仅谈论 CPython 都分别解释为 Java 和 CPython 字节码 然后 两个字节码都由各自的虚拟机 JVM 和 Cpython VM 解释
  • C#:使用字节数组创建位图

    我正在尝试使用以下代码使用字节数组动态创建位图图像 Bitmap GetImage IntPtr ip Marshal AllocCoTaskMem imagesize some code to fill ip Image img new
  • 如何在 iOS 13 中的 Swift 中立即更改状态栏文本颜色

    我正在使用 Swift 5 1 和 Xcode 11 1 目前我已经完成了深色模式设计的实现 用户使用此代码在设置页面中更改主题样式后 主题会立即更新 guard let appDelegate UIApplication shared d
  • 从 TextBox 继承的 vb .NET 自定义控件不会触发 Paint 事件

    我需要一个始终被禁用的多行文本框 但它不应该将自己涂成灰色 但我想保留其设计者选择的颜色 我以前对始终黑色标签 无多行 有相同的要求 因此我从 Label 继承 例如 Imports System ComponentModel Public
  • 我无法在 Visual Studio 中同时构建项目的多个配置,但可以使用 MSBuild

    我想在一个项目中同时构建两个配置 假设当我想构建发行版本 但我什至想构建调试版本 反之则不然 从 开始使用单个 Visual Studio 解决方案同时构建 x86 和 x64 我尝试添加到 csproj
  • 选框设置速度

    我正在使用选取框来显示我的一项活动中的文本 我的问题是是否可以加快选取框的速度 使其在屏幕上滚动得更快 下面是我的 XML 和 Java TextView et2 TextView findViewById R id noneednum e
  • 如何将世界划分为单元格(网格)

    如何将世界划分为几乎相同大小的单元格 以便每个纬度 经度可以映射到不同的单元格 我很确定我见过一个库这样做 将单元格标记为 S1 S2 等 假设我们有 62 356279 99 422395 如何将其映射到名为 FR 23 的 2km 2k
  • OleDbConnection.Open() 仅在一个项目中引发异常,相同的代码适用于其他项目

    The Microsoft ACE OLEDB 12 0 provider is not registered on the local machine 我知道解决这个问题的常见方法是安装 Microsoft Access 数据库引擎 20
  • 将 Python 字典的值写回文件

    我将两个 XML 文件中的信息提取到两个字典中 因为我想比较这些文件并更改其中一个文件中的信息 这些是我的词典 来源词典 d source 123 description 1 456 description 2 目标词典 d target
  • 使用 Laravel 4 更新视图中的实时数据(如进度条)

    TL DR 我想发送数据以在视图中实时更新 例如进度 显示操作状态的栏 在 Laravel 4 中做到这一点的最佳方法是什么 设置 我正在开发一个基于 Laravel 4 的项目 其中每个用户都可以兑换序列号 我创建了一个管理后端 我可以在