热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

agilelite-移动应用前端开发框架学习笔记

前言新公司接手的一个项目是用agilelite框架搭建的,说实话,之前并没有听说过这个框架.不过前端框架这么多,也只能慢慢的学习了.不过这个框架好像知道的人确实很少.网上很少看到到相关的介绍,官

前言

新公司接手的一个项目是用agile lite框架搭建的,说实话,之前并没有听说过这个框架.不过前端框架这么多,也只能慢慢的学习了.不过这个框架好像知道的人确实很少.网上很少看到到相关的介绍,官方的介绍也比较少.所以,自己写了这个随笔,记录下这个框架的知识和工作项目中所用到的点.自己的一个总结和以后需要的时候的一个回顾.
agile lite是由烽火星空出品的,是一个HTML5移动应用开发框架,支持jQuery和zepto二选一,结合事件驱动模式提供控制器与组件的深度交互.基于模板技术提供mvp模式的数据注入,与组件结合,自动化初始组件,让组件自带运行.提供无关UI的可扩展架构,具有独立UI结构的样式都可以agile lite中使用.

Agile lite与微信

微信内置了浏览器内核,可以对H5的页面进行展示,并且开放了微信JS SDK能让开发者调试微信客户端已经集成的本地能力以及支付,转发等业务能力.
agile lite可以运行在任何支撑H5的宿主容器中,所以微信内置浏览器中可以使用agile lite,但是agile lite为微信JS SDK封装了本地能力桥接类,可以在agile lite中使用微信的能力.
微信仅支持单窗口,不可以同时打开多个窗口,所以在微信开发中,一般建议使用单页模式开发.
要调用微信内的JS SDK需要先经过验证授权,agile lite中也对这部分能力做了集成,能够通过简单的配置即可在微信中调用微信的JS SDK.

目录结构介绍

下载Agile Lite源码之后,将其解压缩到任意目录即可看到2个目录“agile”、“third”,agile是框架的核心,third是Agile Lite依赖的第三方库,主要是jquery mobile、iscroll5、artTemplate。

third目录下的文件

  • jQuery mobile:是jQuery在移动端的一个插件,让jQuery支持触摸事件.
  • zepto:是一个轻量级的类jQuery框架,在agile lite中可以替代jQuery使用.
  • IScroll5:是一个移动端页面滚动的解决方案,agile lite里面用到的是V5版本,在agile lite里面封装好了接口.
  • artTemplate:是一个经典的JS模板引擎,可以将JSON数据动态注入到一个模板文件中.
  • UI框架:third目录下内置了烽火出品的seedsUI和FlatUI以及热门的第三方UIratchet和WeUI.
  • 特别注意:agile lite中jQuery和zepto只能2选一,UI框架也只能使用一种.混用会出现不可预知的兼容性问题.

基本模板

agile lite本身有严格的页面结构.使用agile lite框架,基本模板如下:













Hello World

在js中必须要实现A.launch方法来期待agile lite框架.比如app.js :

A.launch({
    readyEvent : 'ready',//触发ready的事件,在ExMobi中为plusready
    backEvent : 'backmonitor',//触发返回按键的事件,在ExMobi中为backmonitor
    crossDomainHandler : function(opts){
        $util.server(opts);//设置跨域
    }
});
       

agile lite的页面结构

在原生开发的移动应用中,不同的组件称为view,不同的view组成一个页面.在HTML5中,一个完整的HTML标签就是一个页面.
在agile lite中,弱化了HTML的概念,把HTML当成一个容器,body中显示的主体内容才是页面,一个HTML容器可以存放1个或者多个页面,每个页面放置于section中.而一个页面section必须有主体内容article,也可以有头部header,尾部footer,一些别的组件(view),可以在section里也可以在article里.
agile lite的基本结构就是以section为单个页面的容器,页面中显示的标题导航header和主体内容article,footer都位于section之下,并且各自可以显示需要的内容.

开发模式

采用HTML5进行移动应用开发,开发模式很重要,而且开发模式的选中和承载HTML5的框架有关.移动应用开发最常见的两种模式为单页模式和多页模式.

单页模式

单页模式就是在一个HTML5移动应用中只包含一个HTML页面,不同的视图的显示实际上是一个页面中采用动态显隐来实现的,不同的视图都是一个HTML片段,而不是完整的HTML页面.

在单页模式中,主页面是可以独立加载,更新和替换的一些可视元素的组合.通过这种方式,可以不洗在每次用户操作后重新加载整个页面.在任何时候,都只显示与应用程序当前阶段相关的可视元素和内容.其他内容都被隐藏,但只要应用流中需要,就会显示出来.

多页模式

多页模式相对于单页模式,应用中的每一个页面都是一个独立的HTML页面,而不是HTML片段.
传统的写法,多页模式的话,每个页面都要重复加载一些数据,页面刷新,很引响用户体验.所以需要采用更高效的方式将通用的数据缓存,提高每个页面的加载速度.
使用移动应用平台ExMobi开发即可使用多页模式进行移动应用的开发。

开发建议

单页模式和多页模式的选择并不是随意,一般当开发框架支持数据的缓存方能使用多页模式,否则建议使用单页模式,而且通常支持多页模式的框架,对单页模式也会有较好的支持。
比如:PhoneGap是一个纯HTML5框架,更多能力封装为JS插件,所以适用于单页模式开发;而ExMobi是一个具有清晰界面结构的移动应用开发框架,除了HTML5也能采用其他方式展示界面,所以适用于多页模式开发,当然,如果有特殊需要,单页模式也是可以支持。
实际上不管是单页模式还是多页模式都各有利弊:
比如单页模式会使一个界面不断加载新的元素而导致界面逻辑复杂和页面膨胀,包括HTML、JS和CSS的命名都需要进行有效管理;
而多页模式由于打开多个页面,使得不同页面间的交互比单页模式稍微复杂一些。
所以,通常多页模式和单页模式按比例组合使用是非常有必要的。相对独立的页面可以使用多页模式,有较多交互的页面采用单页模式。


推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 装饰者模式(Decorator):一种灵活的对象结构设计模式
    装饰者模式(Decorator)是一种灵活的对象结构设计模式,旨在为单个对象动态地添加功能,而无需修改原有类的结构。通过封装对象并提供额外的行为,装饰者模式比传统的继承方式更加灵活和可扩展。例如,可以在运行时为特定对象添加边框或滚动条等特性,而不会影响其他对象。这种模式特别适用于需要在不同情况下动态组合功能的场景。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在处理木偶评估函数时,我发现可以顺利传递本机对象(如字符串、列表和数字),但每当尝试将JSHandle或ElementHandle作为参数传递时,函数会拒绝接受这些对象。这可能是由于这些句柄对象的特殊性质导致的,建议在使用时进行适当的转换或封装,以确保函数能够正确处理。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 本文全面解析了JavaScript中的DOM操作,并提供了详细的实践指南。DOM节点(Node)通常代表一个标签、文本或HTML属性,每个节点都具有一个nodeType属性,用于标识其类型。文章深入探讨了DOM节点的创建、查询、修改和删除等操作,结合实际案例,帮助读者更好地理解和掌握DOM编程技术。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • HTML 页面中调用 JavaScript 函数生成随机数值并自动展示
    在HTML页面中,通过调用JavaScript函数生成随机数值,并将其自动展示在页面上。具体实现包括构建HTML页面结构,定义JavaScript函数以生成随机数,以及在页面加载时自动调用该函数并将结果呈现给用户。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • SQLite数据库CRUD操作实例分析与应用
    本文通过分析和实例演示了SQLite数据库中的CRUD(创建、读取、更新和删除)操作,详细介绍了如何在Java环境中使用Person实体类进行数据库操作。文章首先阐述了SQLite数据库的基本概念及其在移动应用开发中的重要性,然后通过具体的代码示例,逐步展示了如何实现对Person实体类的增删改查功能。此外,还讨论了常见错误及其解决方法,为开发者提供了实用的参考和指导。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
author-avatar
sdfasdfqg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有