2010-08-20 2 views
12

Je tente de créer une application Web simple pour iPad qui doit être utilisée dans des endroits sans connectivité Internet. Initialement, j'avais l'intention d'utiliser la mise en cache des manifestes hors ligne de HTML5 pour synchroniser les actifs dans la mémoire de l'iPad lorsque la connectivité Internet était disponible avant d'aller sur le Web. sur la route, mais malheureusement, il semble y avoir une restriction (au moins dans iOS 3.2) que le cache ne peut pas dépasser 5Mo. En regardant la façon dont Google utilise les bases de données web HTML5, je me demandais si une solution alternative pourrait être de placer les assets vidéo/image dans blobs dans une base de données. Cependant, j'ai beaucoup de mal à trouver un moyen de lire les données binaires à stocker dans les blobs dans la base de données.Utilisation de la base de données Web HTML5 pour stocker des fichiers pour un accès hors connexion

Mes questions sont les suivantes:

  1. Quelqu'un pourrait-il fournir des liens [à] un exemple de lecture des données binaires dans une base de données web HTML5 côté client (et y accéder)?
  2. Serait-ce une méthode de mise en œuvre alternative raisonnable en ce qui concerne la restriction de 5 Mo?
+0

avez-vous eu quelque part avec cela? Je regarde un problème similaire, mais pour le bureau –

+0

Malheureusement, nous devions aller avec une application fine autour d'une instance de Safari intégré. L'application elle-même a fait la demande de contenu initiale, a saisi le manifeste, a acquis le contenu, puis présenté localement depuis le disque vers l'instance du navigateur.Nous nous sommes contentés d'analyser un manifeste qui est dans le même format que la spécification HTML5 actuelle dans l'espoir qu'un jour nous pourrons sortir de l'application et utiliser RAW BROWSER POWER (R) (TM) !! 1! – andybee

Répondre

5

Je voulais juste partager mon expérience car elle pourrait être pertinente. Nous avons essayé de développer une application web basée sur iPad qui doit stocker des milliers d'images et de fichiers (comme des présentations et des documents Word)

Une maquette de Windows (Safari 4 & 5) peut importer des images codées en base64 dans une base de données Web SQL (champ blob) et les afficher en utilisant un rappel db pour définir la source des tags d'image comme src="data:image/jpeg;base64,...base65encimagedata..."

D'autres fichiers (doc, ppt, pdf) ont dû être téléchargés en utilisant le cache/manifeste hors ligne. Même si nous pouvons les mettre dans une base de données en tant que base64, il n'y avait aucun moyen de les voir.

Maintenant le problème ... Desktop Safari vous permet de créer une grande base de données SQL (j'ai fait 1 Gig 3000 images importées.) Et n'a pas imposé une limite connue sur le cache hors ligne. Cependant, sur l'iPad, les choses sont moins utiles car je ne peux pas créer une base de données de plus de 50 Mo, plus la limite de cache de 5 Mo.

Quelques alternatives (je ne l'ai pas encore essayé) ont été:

  1. Essayez Opera Mini (ou d'autres navigateurs disponibles) sur l'iPad
  2. Je sais que Google Chrome (qui utilise WebKit) a une limite sur sa taille de base de données SQL, mais vous pouvez le 'patcher' (https://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/8672b2e0cd69a9f7/ebf17070d32c1168?lnk=gst&q=database+size#ebf17070d32c1168) avec un peu de SQL pour augmenter sa taille. Peut-être que cela peut être fait sur l'iPad en quelque sorte.
+0

En résumé, ce n'est pas possible (du moins pour l'instant). Pour mon projet particulier, il ressemble à écrire une application mince autour d'un UIWebView qui tire le contenu vers le système de fichiers de l'iPad puis l'affiche. – andybee

2

La base de données a une limite de 5 mb après quoi l'utilisateur est invité à autoriser environ 20 mb de plus. La limite dure est de 20-25 mb après quoi vous ne pouvez plus insérer d'enregistrements dans votre localstorage.

+0

un lien vers les documents officiels? – Dan

+0

La limite est spécifique à la plate-forme et au navigateur à la fois pour WebStorage et pour WebSQL. – Astronaut

Questions connexes