Laravel: автономный режим?

Я хочу, чтобы мое веб-приложение (построенное с помощью laravel) работало в автономном режиме... но я не могу понять, как это сделать!

Я использую «кэш приложения» для статических файлов, но я точно не знаю, как обращаться с динамической стороной приложения.

Приложение использует базу данных, для которой, как я предполагаю, мне нужно использовать localStorage? (из того, что я читал в Интернете до сих пор)

Я в основном просто ищу кого-то, кто укажет мне правильное направление, так как я изо всех сил пытаюсь найти много онлайн по настройке Laravel для использования в автономном режиме.

Спасибо, Дэйв


person David    schedule 08.01.2015    source источник
comment
Вы не можете. Laravel написан на PHP, который является серверным языком. Нет сервера, нет приложения. Если вы хотите, чтобы ваше приложение работало в автономном режиме, вам нужно изучить клиентский язык, например JavaScript.   -  person Martin Bean    schedule 08.01.2015
comment
что ты имеешь в виду под "офлайн"? без доступа в Интернет? Просто установите все на локальном сервере, например XAMP, и вам не нужно подключаться :)   -  person violator667    schedule 08.01.2015
comment
Я думаю, вам нужно уточнить свой вопрос, Дэвид. Вы имеете в виду, что хотите разработать приложение Laravel локально или хотите, чтобы ваше приложение работало в автономном режиме для пользователей на их устройствах?   -  person Martin Bean    schedule 08.01.2015
comment
Правильный вопрос @David (+1), как вы реализовали решение. Какова реальная обратная связь клиента после использования его в производстве...? Мне нужно построить такую ​​систему, и мне нужно знать, работает ли решение в реальной жизни...   -  person hhsadiq    schedule 06.10.2015
comment
Привет, @hhsadiq, мы решили использовать Meteor — это здорово! используя пакет Appcache (который хранит активы в appcache) и ground:db Package (который хранит базу данных в локальном хранилище) мы смогли использовать наше приложение в автономном режиме. В настоящее время мы используем его для создания приложения для iOS и Android с использованием интеграции Cordova Phonegap.   -  person David    schedule 06.10.2015


Ответы (1)


У вас может быть только статический сайт в автономном режиме с appcache. Вы не можете сделать это с laravel.

Если вы хотите переместить данные в локальное хранилище и иметь полудинамический веб-сайт, вам необходимо полностью изменить свою архитектуру. Позвольте мне обрисовать возможный подход:

Одностраничное веб-приложение, написанное на javascript (с использованием фреймворка, например, ExtJs), которое подключается к серверной части в форме веб-сервиса, предоставляющего доступ к базе данных (вы можете написать его с помощью laravel).

Когда вы подключены к серверу, вы можете загрузить данные в локальное хранилище. Когда вы не в сети, вы можете продолжать работать с данными. Когда клиент повторно подключается, вы должны синхронизировать изменения с сервером.

Изменить: с 2020 года хранилище приложений устарело. Вместо этого посмотрите на ServiceWorkers.

person Lorenz Meyer    schedule 08.01.2015
comment
Спасибо @Лорез Мейер! Посмотрим на это! Спасибо, что дали мне решение, а не просто сказали мне, что вы не можете, и поставили мне минус... очень ценю! :) - person David; 11.01.2015
comment
@LorenzMeyer я знаю, что это старый вопрос, но как насчет того, если вы используете ajax с laravel, поэтому при каждом запросе на сервер, который вы делаете в случае обновления или добавления новой записи, мы будем проверять, не работает ли соединение, и если это так, мы затем будет использовать html5 localStorage и уведомлять пользователя о том, что эти данные будут отправлены на сервер после восстановления соединения, нельзя ли это сделать? - person ctf0; 09.03.2016
comment
@ ctf0 Я думаю, то, что вы предлагаете, может сработать. Хотя боюсь, что реализация будет тяжелой. - person Lorenz Meyer; 09.03.2016
comment
@LorenzMeyer, не могли бы вы рассказать подробнее, пожалуйста, для проверки в автономном режиме я собирался использовать что-то вроде krawczyk.io/heyoffline. js - person ctf0; 09.03.2016
comment
На самом деле, я не могу дать совет по этому поводу. Мой ответ уже отражает то, что я могу сказать на этот вопрос. Я мало что знаю о Laravel. Кстати, я думаю, что бэкенд не актуален. - person Lorenz Meyer; 09.03.2016
comment
Какой фреймворк вы используете для фронтенда? Задайте другой вопрос, касающийся того, что вы используете. - person Lorenz Meyer; 09.03.2016