热门标签 | 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的命名都需要进行有效管理;
而多页模式由于打开多个页面,使得不同页面间的交互比单页模式稍微复杂一些。
所以,通常多页模式和单页模式按比例组合使用是非常有必要的。相对独立的页面可以使用多页模式,有较多交互的页面采用单页模式。


推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • intellij idea的安装与使用(保姆级教程)
    intellijidea的安装与使用(保姆级教程)IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gi ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 随着前端技术的发展,越来越多的开发者开始使用react、vue等web框架,但很少有人深入理解这些框架的源码。然而,这些框架底层都是由原生的javascript构建而成。对于初学前端的人来说,可能会认为javascript很容易上手,但实际上只是因为它被高度封装了。与能够使用封装类的人相比,能够理解框架原理的人则处于另一个层面。本文将深入剖析jquery源码,探寻框架底层的原理,帮助读者更好地理解web框架的运行机制。 ... [详细]
  • 本文是一篇翻译文章,介绍了async/await的用法和特点。async关键字被放置在函数前面,意味着该函数总是返回一个promise。文章还提到了可以显式返回一个promise的方法。该特性使得async/await更易于理解和使用。本文还提到了一些可能的错误,并希望读者能够指正。 ... [详细]
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社区 版权所有