Laravel:离线模式?

Posted

技术标签:

【中文标题】Laravel:离线模式?【英文标题】:Laravel: Offline Mode? 【发布时间】:2015-03-06 23:02:15 【问题描述】:

我想让我的网络应用(使用 laravel 构建)离线工作...但我不知道该怎么做!

我正在对静态文件使用“应用程序缓存”,但我不确定如何处理应用程序的动态方面。

该应用程序使用我猜我需要使用 localStorage 的数据库? (从我目前在网上阅读的内容)

我基本上只是想找人为我指明正确的方向,因为我在网上很难找到很多关于设置 Laravel 以供离线使用的内容

谢谢, 戴夫

【问题讨论】:

你不能。 Laravel 是用 php 编写的,这是一种服务器端语言。没有服务器,没有应用程序。如果你想让你的应用离线工作,你需要研究一种客户端语言,比如 javascript “离线”是什么意思?没有互联网接入?只需在 localhost 服务器上安装所有内容,例如 XAMP - 您不必插入 :) 我认为你需要澄清你的问题,大卫。你的意思是你想在本地开发一个 Laravel 应用,还是你想让你的应用在他们的设备上为用户离线工作? 一个有效的问题@David (+1) 你是如何实施解决方案的。在生产中使用后客户的实际反馈是什么......?我必须建立这样的系统,并且需要知道解决方案在现实生活中是否有效...... 嘿@hhsadiq,我们决定使用Meteor - 太棒了!使用Appcache Package(将资产存储在应用程序缓存中)和ground:db Package(将数据库存储在本地存储中)我们能够离线使用我们的应用程序。我们目前正在使用它来构建一个使用 Cordova Phonegap 集成的 iosandroid 应用程序。 【参考方案1】:

您只能使用 appcache 使静态站点脱机。你不能用 laravel 做到这一点。

如果您想将数据移动到本地存储并拥有一个半动态的网站,您必须彻底改变您的架构。让我概述一种可能的方法:

一个用 javascript 编写的单页 ​​web 应用程序(使用像 ExtJs 这样的框架),它以 web 服务的形式连接到后端,可以访问数据库(你可以使用 laravel 编写它)。

当您连接到服务器时,您可以将数据加载到本地存储中。当您离线时,您可以继续使用数据。当客户端重新连接时,您必须将更改与服务器同步。

编辑:自 2020 年起,应用程序存储已弃用。改为查看 ServiceWorkers。

【讨论】:

谢谢@Lorez Meyer!会调查这个!感谢您给我一个解决方案,而不仅仅是告诉我“你不能”并标记我......非常感谢! :) @LorenzMeyer 我知道这是一个老问题,但是如果你使用 ajax 和 laravel 怎么办,所以在每次向服务器发出请求时,你都会“在更新或添加新记录的情况下”我们将检查如果连接断开,我们将使用 html5 localStorage 并通知用户一旦连接恢复,此数据将发布到服务器,不能这样做吗? @ctf0 我认为您的建议可行。尽管我担心实施会很繁重。 @LorenzMeyer 你能详细说明一下吗,对于离线检查我打算使用krawczyk.io/heyoffline.js 真的,对此我无法给出建议。我的回答已经反映了我可以对这个问题说些什么。我对 Laravel 了解不多。顺便说一句,我认为后端不相关。

以上是关于Laravel:离线模式?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Homestead 离线安装

计算活动的缓存会话 Laravel。 (需要建议)

AWS AppSync 与 Laravel 的正确集成?

Laravel 控制反转和门面模式概念详解

Laravel 迁移 - Model::find($id) 返回 NULL 但 $id 存在于数据库中

维护模式与中间件在 Laravel 中重定向