jp, The specific test i initially used with the iPhone simulator was as follows:
1) Put "http://webkit.org/misc/DatabaseExample.html" through a data:/ url generator ( e.g. http://software.hixie.ch/utilities/cgi/data/data ) 2) Repeat 1) with slightly modified text in the document 3) Add data url's for 1) and 2) to the home screen in the simulator (e.g. by inserting the links on a page then navigating + adding them) 4) Add "http://webkit.org/misc/DatabaseExample.html" to the home screen. You'll notice that: * Both data:/ url's contain the same notes (they both point to the same database) * The link to the webkit database demo contains different notes (they point to a different copy of the database) Thus i was thinking that you could make use of this little feature and, say, insert data:/ url's into your database for offline images. e.g.: Schema: "CREATE TABLE DataURIS (id TEXT, uri TEXT)" So Then perhaps: function setOfflineDataFor(id, uri) { db.transaction(function (tx) { tx.executeSql("INSERT INTO DataURIS (id, uri) VALUES (?, ?)", [id, uri]); }); } function getOfflineDataFor(id) { var res = "data:/"; db.transaction(function(tx) { tx.executeSql("SELECT uri FROM WebKitStickyNotes WHERE id LIKE ? LIMIT 1", [id], function(tx, result) { if (result.rows.length == 1) res = result.rows.item(0)['uri']; }, function(tx, error) { alert('Failed to retrieve data from database - ' + error.message); return res; }); }); return res; } And: // Set image data in database // (In a real scenario, this would come from an XMLHttpRequest or perhaps just another data:/ page) setOfflineDataFor("webkit.png", "data:image/ png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAJjklEQVRYha2XeZAU1R3HP909091z7u7s7uzs7LCwu %2BzCckgBssgfKiqiEiURSzRikqKiOSyPfxJzqbEqmtKYGDWFiVrxSpl4xUQiWCgqAgsih9wILOwxe8zMzn1Pd890%2FmBBQEBM5VfVVV39%2Br3v533f9XuCaZoC5xGCIJjP3DW7TRdTN0kV %2Ble%2B2%2FPmuz2mZprnU%2FvsIZ6v%2BIPLcGtm%2Bso7n%2Bx5qXv %2FSOSb1zQvBMEUhC%2Be%2FwVAOB8HxhpXH7zVt %2Fiyi6d2mWL11cGB4PNN08evUtKGNRk5oL3%2F%2BueRJ3aSPF7nvJ39qh%2BP9%2ByFu %2Bvbm7tu%2FeHkWVfd5W%2BfKxezSa2s5YEKhl4yCqmRaCZ8YOdIz %2Ba3X3nmXyuf3U4UTOGrhuicAIIgmE8tIzD %2F27%2B4LzD92mU1gU5nJnSUwYPdpGMD6KUcVquMo7qRen87tY1tVMolBg92D%2FR %2FtvLJy%2B%2F5eAVQOqfG2QoFQTBXPzr7W9MX3LUiMGuJf2T%2FerZ %2B8CKZWBC73YbDbkeyqmBWMI0CJa0AggWvr4Xxk7uwWGQO7VizcdWqV2976A0OnlXn9AJBOPZ5zeNz7ph1zf0r6lou4sPXH2bkyBb8jV4MatEsEzBEL4k0CIKAJORQzShVSgipEqGYHcXjqcPbMofQwP6hj95fs %2BS%2Bv6c%2FPRPEGQAE8837J9568dLf %2FM3tv5BVL96LXYij2AP0pqeg1M2i3teEKIjomo6syFSAUrFEIjSMntxLq3cACj3k06N4%2FJ1kkqHh1Ru7L3%2FyjdKXnBBPF3%2F4Bi7onHfz01W %2Babz7wj3Uqmkyegv7M9%2BgbuIiVJuHQr5Ec3MNVCoko0mK2QJC2cTnH0dDx9XsGJpHVpyNx9%2FOYO8%2BMPHPm9z %2BV0A9fbmecOB4warHF6y5YumvFm5a%2FTRSOcFgwk %2BftohAoAld19ENk3y2SLXHScWEsl5GtkjHGhNFXFUOqoY2s2nQZPaUGH77HvbsPUiVXeBwMHXvT5%2Ftf8wEgbHlcYoDD95iX9Q65aKFfbvegdIIutDItuAcHK46BgaThCJ5EvECmbSGqsggWohEi4QjOcKRAuFIAc %2FG5wgHw6h1U1m7zUvZPo2O1kYGR4tUu6z3LLwArwAnXBBP7n3zhMm3ue1WQj0b8PrbWLfbh %2BxuJp3VGI0VGY0XCMeKjKYMrDaFadObGA3nCEV00qkcVxx6isRIH9u4kEQ0jyY1sm63B %2F %2BETupqHDhUa9PCeROWnHEO3NhBU62n9pLR4G7szipi2Rp64%2BOIxYv0BVNkcgbZXJlMvkwsUUI3YGJbLU0TGnELab43%2FDiZ0AFWO5aQT0MkUiCTNNjd6yJVaaZ1gh9JdhJoalx8cqctxwE8He4ZTlWsjUaGaW7rZM9eF8WCnUq5CBYLFkVCRKJrTgBZsdA3mOFnD2xkpnuYu41n2DN8kJddd5DNe7GgM6nVRVtHHQf7k2QqThoamgmG0jiqmmbMZnPddogCWISxReGyOSZjahgVE9VZSyjuoGwqlMsSlTJkSgbJVJZk1mDG1Eaef2EPCwOHWBZ4h13DYda13MiVi76DVRA50pNAsQjkSwIVTSYcs9Pa6sc091C22Os65uLfvmUMAI5ZochKg4mEKClIVhcZzUNJg96eOAXdpKibuD0qcy %2BqZ%2FO2EPO6GvjBUie7Nhxl5edWyt4lLJzk5bXXD %2FLRh0MYmkGxVKHeZyPQKKNMq6ZsGJRyKVmyOT2Q5ZQhQFItstOPng8jShLBYIJ4TGD592fRvXmYugY3Ny2dTGtbDb %2F9wxZ%2BcncXJX2Inbv2stV5ATOsdfz691uIjBaQ6xRETUZPVkhkTfIFDdFiRS %2Bb5KKDZAzphO6Jl3yJlMs3nWTfKJVykUsv7iC61oHd7cA%2FzsPRYI4Vz %2B1H003uu7cLWQzzj9fWsqq7mfqJk7jqsgAfdIvopLFYJfSigCSZGIaGp1oHJNI5jWg0VkkktfwJANM0BUEQzMH %2B4ABWN0gKoiigSlFCcYHD%2FQU%2B2ZlEN0w0Q %2BP6a1vx1iZ4%2BZW19IUaWXxdB5Iq8fbaYdxOBafbAaKAIICiVXAIFTo7VDQ9RCiS4uhwPnN0oDD6pWW4YXtuX %2B%2FRnhIWN8V8gc7xBXw %2BkbXdYSSbiuKyM2Omn6WLHax4di2rNnjIGs0sv6WDdAoGR8oMxXRsThXVrmKRbFhlhZZmhcntVYRDwwxF0gxFS32DaUa %2BBBDS%2BXz79i37BKuLcGiE8QE7l8ws4XJbUWwOqqvd3Ly4hj%2B %2FsJFNewO4PC1EkmU %2B3BxDsasYZRXZasNutyFbVXyNLlQHLJrvpKZaZdeOTwkldKIJYyPHZ%2BBxgLHzIPPB %2Bm1vxaKj9BzpRbDYuf5Sg%2FH %2BClZVZMH8Wt7v7uPAcBs1vnEoDhm72857HycJDekoqopFVlEdCkZZYThcYGanyNXzmxg %2BsovNn %2B5kNGkY8WzhrZM0Tz0LPjmQf23thu39%2BWyKvTs2MaFlHLdfm2NSq0nvUJxCuZk6bwNWWUZRVXTNQqUgoIoSyRhYVQXJolIoaXSMr %2FDjm%2F0oYp5Vbz7HkaEcyayxZijGpjNuxWNEPe%2BuH3iyP5Rl%2Ffp19B %2Fewby57Xx3QZaKUSFdMpBUCcUpo7hsqG4bfREJd72Lep %2BDcgW0YobZHWXuXe6jodHOmlcf4YONnzESN9LDsdLvgOLJOcEpCcnY %2Flw9a6LtmYumVC%2Btr7GxbPmdtHfdQCQc570tRbYcUojnFBBlKqZIJlXGX%2B %2BiQo6G6gKXXyhz6RwvFkln9UsP8Oqrr9EzUqZ3KPvzUKry6JcSoDNlRMDEmW22v7SPc1zR7FW49rrrmbfoR8hVPhKjSY4M5OgPmxQ1CUTobHPjcYKv3obqUgkf2so %2FX3qEDd1bCaVMeoLZPw3Gyr80TTPHaXHGpHQMYvKkgPJQU73thoYqgSkdAS6%2B %2FDqmdV1DbWMryMqxBNIEdJ1iNsFQ7x52bFzJti3ricTzBKN68VB%2F7o %2FBmPGYaZrJ03XOCnAMAkDwN1aLyxs86u21VdZmj9PEV%2Bdi3Dg %2FPl8TDmcVIgZ6IUE2FaaQiZMtGAzGyuw%2Bmt2xqyf9RDLHW6Zp5s %2BkcU6Ak9xQLDC70WtZ4qtRrvRWyxMbaqy2%2BiqJ %2BioLNW4ZVZHJFkwGwrnknqPZfTt7Mv8ZGDX %2BDRw2zXNfTc7rajYGYgfG11fJUx02OutcFr %2BiSA4JKkWtnB6Ja33BqLEf2A8Mm6ZpnFe75wvwBQiAYAVkjh1mJmAAJUyz %2FHVvqF8b4P8d%2FwUxdIwOTkEWNwAAAABJRU5ErkJggg%3D%3D"); // Create image from database var elem = document.createElement("img"); elem.setAttribute("src", getOfflineDataFor("webkit.png")); document.body.appendChild(elem); Just an idea though. Not tested this out for real yet. Regards, ~ James On Jun 4, 4:05 am, jp <[EMAIL PROTECTED]> wrote: > On May 30, 6:14 am, JamesU <[EMAIL PROTECTED]> wrote: > > > > > Hi there, > > > I've been experimenting a bit with the iPhone simulator in the SDK to > > see if i can make web-based apps that can work off-line. > > > Consequently i've ended up using the "data:/" URL "hack". But i've > > noticed that this is pretty useless apart from quick utility apps > > (like a calculator). > > > Looking further, i noticed that there is client-side database support > > in the simulator's browser. So naturally, i thought "can i combine > > data:/ URL's and the database API to make a useful offline app?". > > > So i took one of the simple database examples and converted it to a > > data:/ URL (http://webkit.org/misc/DatabaseExample.html). And it > > seems to work rather nicely - i can create notes, close the page, open > > it again, and see the notes i previously created. In addition i can > > access the notes from any other "data:/" URL, which seems quite neat. > > James, Any chance you can share your data:/ source code? > > Thanks, > JP > > > > > Thinking about it, in theory i could store "data:/" URL's for extra > > images in a client-side database, allowing me to significantly cut > > down the size of my app's main "data:/" URL. > > > Now my question is this: Are there any really obvious limitations on a > > real device in combining "data:/" URL's and client-side databases? > > I've noticed that supposedly database access is restricted per-domain, > > but this does not seem to apply to "data:/" URL's. Looking at Safari > > on my mac for example, "data:/" URL's are all grouped under one tree > > in the security preferences. > > > Any insight or further suggestions would be appreciated. > > > ~ James --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "iPhoneWebDev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/iphonewebdev?hl=en -~----------~----~----~----~------~----~------~--~---
