Jquery 使用jqMobi实现数据持久化

Jquery 使用jqMobi实现数据持久化,jquery,mobile,data-persistence,jqmobi,datapersistance,Jquery,Mobile,Data Persistence,Jqmobi,Datapersistance,嗯,我已经通过谷歌搜索和堆栈溢出进行了排序,但到目前为止,我还不知道如何处理这个问题 我想使用jqMobi+CSS+html5为iphone构建一个待办程序。我曾与jQuery打过交道,花了一些时间与jquerymobile打过交道,做过大量的css和HTML(尽管很少使用HTML5)。我需要能够做的是保存用户打开程序时生成的列表 我在动态生成和链接页面方面没有问题。。。但是当你再次打开程序时,我生成的所有页面(如待办事项)都会消失。我理解这是因为它们不是作为基本程序的一部分编写的。我突然想到,

嗯,我已经通过谷歌搜索和堆栈溢出进行了排序,但到目前为止,我还不知道如何处理这个问题

我想使用jqMobi+CSS+html5为iphone构建一个待办程序。我曾与jQuery打过交道,花了一些时间与jquerymobile打过交道,做过大量的css和HTML(尽管很少使用HTML5)。我需要能够做的是保存用户打开程序时生成的列表

我在动态生成和链接页面方面没有问题。。。但是当你再次打开程序时,我生成的所有页面(如待办事项)都会消失。我理解这是因为它们不是作为基本程序的一部分编写的。我突然想到,解决这个问题的方法是将这些列表保存到文件或数据库中,然后在程序启动时加载它们

我看过使用Tianium Studio(它支持SQLLite)实现这一点的文档,但页面和常规UI的生成很糟糕。另外,从该代码运行模拟器给了我很多麻烦。至少我可以说,在将代码移植到编译状态之前,使用appMobi的应用程序进行测试可以为您提供一个不错的模拟器

在任何情况下,是否有人知道如何使用DB或文件生成为jqMobi+CSS+HTML5设置数据持久性(在程序重启之间)

编辑x2: 既然我已经把你挂在了@ian上,你能看看这段代码并告诉我为什么$.ui.addContentDiv()看起来没有更新内容吗$(#content).追加(字符串);似乎也不想合作。是否需要调用一些函数以使其刷新?把它剥离了一点,但仍然有问题。奇怪的是,附加到列表中的效果很好,但是当我尝试添加div层时,它并不存在

代码如下:

function genPage( id, list, parent ) {
    var content = '<div id="' + id + '" class="panel">' + id + '</div>';    
    var threadLink='<li><a href="#' + id +'">' + id + '</a></li>';      
    $("#" + list).append(threadLink);
    $("#content").append(content);

    //$.ui.addContentDiv(id, content, id);
}
函数genPage(id、列表、父级){
var内容=“”+id+“”;
var threadLink='
  • '; $(“#”+列表).append(线程链接); $(“#内容”)。追加(内容); //$.ui.addContentDiv(id、内容、id); }
    我是jqMobi的首席开发人员,所以我很乐意为您解答问题

    我正在制作一个迷你待办事项列表,作为1.0版本的演示。我要做的是将数据作为字符串化JSON对象存储在window.localStorage中

    但如果这是一个appMobi应用程序,那么我们有类似的appMobi.cache.cookies。唯一的区别是AppMobi.cache允许您存储更多数据


    请随时查看以获取更多帮助。

    这是我第一次尝试将json和cookie应用于可能会觉得有用的人。这只是一个原型,所以没什么用处。为了简单起见,我删掉了AppMobi的开发环境添加的额外javascript

    编辑:看起来JSON对于数据结构非常有效,只要您不想做任何数据密集型的事情。此外,appMobi的appMobi.cache对于cookies也很有效。下面是我演示基本cookie操作/JSON字符串的小脚本

    代码:

    
    你的新申请
    /*禁止对除文本字段以外的所有元素进行复制粘贴*/
    *{-webkit用户选择:无;-webkit点击高亮显示颜色:rgba(255,255,255,0);}
    输入,text区域{-webkit用户选择:text;}
    /*使用默认背景图像设置页面*/
    身体{
    背景色:#fff;
    颜色:#000;
    字体系列:Arial;
    字号:48pt;
    边距:0px;填充:0px;
    背景图像:url('images/background.jpg');
    }
    函数setCookie(){
    var值=document.getElementById('cookie')。值;
    AppMobi.cache.setCookie(“测试”,值1);
    }
    函数测试床(){
    警惕(“尝试新事物!”);
    var jsonobj={“绑定”:[
    {“ircEvent”:“privmg”,“method”:“newURI”,“regex”:“^http://.*”},
    {“ircEvent”:“PRIVMSG”,“method”:“deleteURI”,“regex”:“^delete.*.”,
    {“ircEvent”:“PRIVMSG”,“method”:“randomURI”,“regex”:“^random.*”}
    ]
    };
    var test=jsonobj.bindings[0]。方法;
    警报(测试);
    }
    函数getCookie(){
    var cookie=AppMobi.cache.getCookie(“测试”);
    document.getElementById(“cookievalue”).innerHTML=cookie;
    }
    


    您想过使用PhoneGap吗?它有一个数据库库,您可以使用它将所有数据保存到sqlite数据库中

    我想我明白了。我会看看会发生什么,然后告诉你。同时,对于以下其他人,这里有一个本地存储内容的链接:
    <!DOCTYPE html><!--HTML5 doctype-->
    <html>
    <head>
    <title>Your New Application</title>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
    <style type="text/css">
        /* Prevent copy paste for all elements except text fields */
        *  { -webkit-user-select:none; -webkit-tap-highlight-color:rgba(255, 255, 255, 0); }
        input, textarea  { -webkit-user-select:text; }
    
        /* Set up the page with a default background image */
        body {
            background-color:#fff;
            color:#000;
            font-family:Arial;
            font-size:48pt;
            margin:0px;padding:0px;
            background-image:url('images/background.jpg');
        }
    </style>
    <script type="text/javascript" charset="utf-8" src="http://localhost:58888/_appMobi/appmobi.js"></script> 
    <script type="text/javascript" charset="utf-8" src="http://localhost:58888/_appMobi/xhr.js"></script> 
    <script type="text/javascript">
    
    function setCookie() {
        var value = document.getElementById('cookie').value;
        AppMobi.cache.setCookie("test", value, 1);
    }
    
    function testbed() {
    alert("Trying new things!");
    var jsonobj = {"bindings": [
            {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
            {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
            {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
        ]
    };
    
    var test = jsonobj.bindings[0].method;
    alert(test);
    }
    
    function getCookie(){
        var cookie = AppMobi.cache.getCookie("test");
        document.getElementById("cookievalue").innerHTML = cookie;
    }
    
    </script>
    
    </head>
    <body>
    <form action="javascript: setCookie()">
    <input type="text" id="cookie" value="set a cookie">
    <input type="submit">
    </form>
    
    <p id="cookievalue"></p>
    
    <form action="javascript: getCookie()">
    <input type="submit" value="Get a Cookie">
    </form>
    
    <form action="javascript: testbed()">
    <input type="submit" value="try new things">
    </form>
    </body>
    </html>