阵列商店Sencha Touch 2

时间:2013-04-19 18:56:10

标签: sencha-touch-2

在使用sencha touch 2构建我的第一个移动应用程序时,一些问题妨碍了我,我似乎无法找到他们的答案。

  1. 应在何处存储应用配置(主题,语言,字体大小)。我刚在想 计算来自商店的数据,如果大于0,则对该数据进行处理,否则添加数据(这只会在第一次打开应用程序或清除localstorage时发生)。这种事情还有其他选择(比如当用户与应用程序交互时会更改的数组)?

  2. 我需要在我的应用程序中使用大约100张图像。我不知道我有什么选择将图像嵌入应用程序。看到很多示例从外部服务器加载图像但不确定是否有用于将它们打包到应用程序的选项。

  3. 如果我有一个带有名称(键)和图像url(值)的数组,那么这个数组应该在哪里?在json文件中,每次需要名称时都使用ajax加载?

  4. 感谢。

2 个答案:

答案 0 :(得分:1)

我建议几点选择:

1-应用程序配置:如果应用程序配置类似于不会因用户交互而更改的常量值集,则可以创建文件(例如properties.js)并在应用程序加载时加载它。

  Properties = {
      SERVICE_URL : 'http://mycompany.com/api',
      PAGE_SIZE : 20
  }

要加载它,您只需编辑app.json

"js": [
    {
        "path": "touch/sencha-touch.js",
        "x-bootstrap": true
    },
    {
        "path": "resources/data/properties.js"
    }
]

如果你想控制这些值,那么你可以把它保存在你的服务器上,并在app.json中将其URL作为“路径”

2-总是可以选择使用您的应用程序打包图像,就像所有图标和图标一样。启动映像已打包但不建议使用,因为它增加了可部署的大小,并且具有较慢Internet连接和低端设备的用户可能会在大小过大时跳过安装它。

3-无需在每次需要时加载JSON文件,您可以在首次加载后将数据缓存在全局变量中,并在需要时继续引用该数组。现在定义全局变量的地方是另一个有趣的讨论,人们建议很多东西,但我更喜欢有一个可以保持所有全局功能的单例类。变量。请参阅此主题以了解如何:Where do I put my global helper functions if they are needed before Ext.application() is being executed?

答案 1 :(得分:0)

对于Text,我们可以尝试这样

   var A_address=Ext.getCmp('address').getValue();  //get the value
    localStorage.setItem("Adult1_select1",A_select1); // assign localstore

     var web_arrayTotalPAssengers=[];
      web_arrayTotalPAssengers.push(localStorage.getItem("web_TotalPassengers"));
     console.log(web_arrayTotalPAssengers);

//推送数组中的值...

          Ext.Ajax.request({
                                        url:'http:/...........',
                                        method:'POST',
                                        disableCaching: false,
                                        headers: {
                                            'Accept': 'application/json',
                                            'Content-Type': 'application/json'
                                        },
                                        jsonData: {

                            origin:Ext.decode(web_arrayTotalPAssengers), //decode and send

                              }

      success:function(response)
                                        {
                                                    console.log(response);
                                            console.log("Success");
                                        },
                                            failure : function(response) 
                                        {
                                            console.log("Failed");
                                        }