NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Verquido
Tvůrce
Avatar
Verquido:12.11.2016 17:11

Potřeboval bych aby byl web dostupný i bez připojení k internetu. Dejme tomu že mám stránku a k mám připojenou databázi. A já potřebuji aby bylo možné se k tomu webu připojit na mobilu i bez připojení internetu a k tomu také využívat tu databázi a třeba jen když je připojení k internetu tak zkontrolovat jestli je databáze aktuální a není v ní nic nového a pokud je tak aktualizovat i tu offline verzi.

Slyšel jsem něco o Manifestu jen nevím jestli se k tomu počítá právě i ta databáze či nikoliv.

Jak by jste si s tím poradili?
Díky :)

 
Odpovědět
12.11.2016 17:11
Avatar
Filip Šedivý:12.11.2016 19:16

Zkus nastudovat tady: http://diveintohtml5.info/offline.html

Ale pokud se jedná o offline verzi, tak to bude řešené tak že se vykreslí stránka s daty z databáze a takto hotová stránka se uloží do cache / manifestu /. Tak že určitě v případě že zařízení je v offline režimu, tak se nepřistupuje k databázi.

Nahoru Odpovědět
12.11.2016 19:16
Láska je, když si zapamatujete její IP, abyste obešli zpoždění DNS.
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Filip Šedivý
Verquido:13.11.2016 13:02

Takže vlastně když jsem Offline tak nemůžu používat databázi a ani PHP protože když jsem offline tak nemám server pro běh PHP.

Jenže JavaScript jde i bez serveru a data z databáze potřebuji. Ale teď nevím jestli by bylo výhodné si ty data místo databáze ukládat například jako JSON nebo do TXT soubor a nějakým formátováním a přes JavaScript s tím pracovat jako s takovou databází v souboru.

Jen nevím jestli po úpravě souboru v manifestu bude ten soubor nový nebo ještě starý, to mi přijde takové krkolomné, co myslíte?

Editováno 13.11.2016 13:03
 
Nahoru Odpovědět
13.11.2016 13:02
Avatar
Filip Šedivý:13.11.2016 16:38

Nutné je v tomto případě oddělit věci ke kterým potřebujeme server a ke kterým klienta.

  • PHP - PHP je vlastně jen program který nepřímo kompiluje scripty a jejich výstup předává Apache / Nginx
  • HTML / JS / CSS - Jsou soubory klientské

Služby:
Apache (port 80, 443) - Slouží pro webové aplikace
MariaDB (port 3306) - Databázový server

Jak vidíš, tak pro to aby si mohl přistoupit k databázi, tak musíš vlastně z Apache se dostat k MariaDB. I přes to že to třeba běží na stejné mašině, tak musíš svázat spojení mezi porty 80 a 3306. A už zde je nějaké spojení které potřebuje internet.

Tak že cachovat - tedy vytvoření manifestu - můžeš jen se soubory které je možné načíst i na počítači pouze s webovým prohlížečem bez internetového spojení. Mezi tyto soubory se řadí klientské soubory, tedy ty co se zpracovávají u klienta - o to se stará prohlížeč. Mezi tyto soubory se řadí: HTML, CSS, JS, PDF, obrázky, videa,... PHP je nutné na serveru zpracovat / zkompilovat / spustit a následně pomocí hlaviček předat výsledek.

Řešil bych to tak, že bych přegeneroval manifest tak že bych se ptal pomocí AJAXu nějakého PHP souboru. Pokud načte data, překreslíš stránku - klient je online. Pokud vrátí 404, nebo něco jiného - klient je offline použije se manifest.

Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět
13.11.2016 16:38
Láska je, když si zapamatujete její IP, abyste obešli zpoždění DNS.
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Filip Šedivý
Verquido:13.11.2016 17:15

Jasně chápu, já sem přemýšlel že bych vlastně měl nějaký PHP soubor, který by mi šel jen kdybych byl online a ten udělal takový update manifestu a JSON souboru kde by byly ty data z databáze. A tím pádem bych je mohl přes JavaScript používat jen u klienta bez serveru.. Jenomže sem se teď asi 4h páral s tím JSONem a prostě mi to nejde nijak použít. Ani přes JS ani Jquery ani AJAX to nejde.. Takže nejspíš si všechny data nahraju u JS do proměný a to hodím do manifestu :D nebo já už nevím.

Prostě na tý stránce i v offline verzi potřebuju nějak pracovat s těma datama, generování přes JS a tak podobně.

Editováno 13.11.2016 17:16
 
Nahoru Odpovědět
13.11.2016 17:15
Avatar
Filip Šedivý:13.11.2016 17:27

No abys mohl ale pracovat s JS / CSS offline, tak je nutné nastavit na serveru / htaccess hlavičky pro cache! Aby prohlížeč tyto soubory uložil do paměti.

Nahoru Odpovědět
13.11.2016 17:27
Láska je, když si zapamatujete její IP, abyste obešli zpoždění DNS.
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Filip Šedivý
Verquido:13.11.2016 17:28

Aha, a to jak?

Koukám že sem to trochu podcenil. Jsem myslel že to bude jednodužší.

 
Nahoru Odpovědět
13.11.2016 17:28
Avatar
Filip Šedivý:13.11.2016 17:37

O cache u klienta se stará v apache mod_expires - http://httpd.apache.org/…expires.html.

Nahoru Odpovědět
13.11.2016 17:37
Láska je, když si zapamatujete její IP, abyste obešli zpoždění DNS.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.