我眼中的sencha touch(2013网页装在兜里)

       sencha touch 是Extjs 的手机版,Extjs是创建富客户端的AJAX应用中的重量级框架,sencha touch当然就是面向触摸设备的重量级js框架,

在做基于桌面的网页时经常用的js库是jquery,Extjs很少用,几乎没用过,1是因为Extjs“重”,加载时间长;2是因为Extjs自称体系学起来难度大,插件没jquery多。

       在phonegap出现后,我开始重视sencha touch这个重量级框架,并且学习了一下,用博客园rss和api做一个小应用,不过还没做完

sencha touch 的优点

       1:由于phonegap将所有的js、图片、html等资源打包后安装到手机上,和服务器用ajax通信,所以sencha touch “重的”问题就不是问题了,而且sencha touch的稳定性,内存控制等都比较出色

       2:sencha touch 整体上看起来和ASP.NET WebForm 很像,例如 组建化、可视化、拖拉弹唱都支持,作为一个c# coder,理解起来很顺畅

       3:基于事件的机制,在手机上,超级链接的概念已经越来越淡化,事件概念越来越明显,而sencha touch 包含了常用的各种事件模型,整体效果不错

       4:mvc,虽然sencha touch 自吹自擂自己的mvc很nx,可能由于接触时间短,我还没看出这个mvc比asp.net mvc 有那些好的地方,不过mvc为构建复杂的应用提供了良好的支持

       5:类系统,为封装业务逻辑提供了工具,不用再自己折腾公共方法、私有方法 等了

       6:经过我测试我做的一个小demo开始用jqmobi,后来用sencha touch 重写了,发现sencha touch 写稳定性比我自己瞎折腾的好些

 

今天下午再弄博客园首页rss,在分页的时候遇到个小麻烦,纠结我一下午

就是list+ListPaging的时候,页码和每页多少条数据的传参问题,ListPaging 默认是ABC.ASPX?num=1&page=2.。。。。这种参数格式,

而博客园的api是/feed/1/20/这种url重写的格式,顿时愁怀了,折腾了一下午,还好,sencha touch 是可以查看源码的,搞定了 代码如下

        var feedlist={
            xtype:'list',
            itemTpl:'<h1>{title}@{author}</h1>',
            store: Ext.create("cnblogs.store.feedlist"),
            plugins: [
                {
                    xclass: 'Ext.plugin.ListPaging',
                    autoPaging: true,
                    listeners:{
                        loadmorecmpadded:function(obj, list, eOpts ){
                            alert('');
                        }
                    }
 
                }
            ]
 
          }

 

Ext.define('cnblogs.store.feedlist', {
    extend: 'Ext.data.Store',
 
    modal:'cnblogs.model.feedlist',
 
 
 
    config: {
        autoLoad: true,
        fields: [
            { name: 'id', type: 'int' },
            { name: 'title', type: 'string' },
            { name: 'summary', type: 'string' },
            { name: 'published', type: 'string' },
            { name: 'author', type: 'string' },
            { name: 'link', type: 'string' },
            { name: 'blogapp', type: 'string' },
            { name: 'diggs', type: 'string' },
            { name: 'views', type: 'string' },
            { name: 'comments', type: 'string' }
 
        ],
        proxy:{
            type: "jsonp",
 
            url : "*********sitehome/paged/1/10",
            extraParams:{
 
            },
            reader: {
                type: "json",
                rootProperty: "responseData.feed.entries"
 
            }
        }
    },
    nextPage:function(options ){
        //重写原来的方法
    //alert('- -');
       console.log('- -');
        this._proxy._url='********sitehome/paged/'+(this.currentPage + 1)+'/10'
        this.loadPage(1, options);
    }
});

 

     查看源码发现,可以重写nextPage 方法,在nextPage里面对url进行修改,就可以继续用默认分分页方法和代理缓存等东西了

posted @ 2013-04-20 21:14  互联网Fans  阅读(1901)  评论(11编辑  收藏  举报