zoukankan      html  css  js  c++  java
  • QWrap简介之:Apps 应用 收获果实

    “Helper + Wrap + Retouch + Apps主线”之Apps

    QWrap的根本使命,是:被应用、为项目开发或组件开发的同学提供易用好用的库
    Jquery与Prototype库,最后给用户使用的,都是一个js,没有多种应用的概念。如果用户想要定制一个满足自身需要的特别版本,需要自己思考个性化的途径。就算是自己想办法,这两个库也是很刚性的库,改、拆、插入功能都很有困难,最多只能在外面包一层。
    前文已讲过Helper规范、Wrap模式、Retouch机制,它们都是QWrap的实现方式,是技术层面的内容。这些实现方式造就了QWrap能屈能伸、刚柔并济,这让QWrap有多种应用变得自然而然。

    多种应用,就是我们所说的Apps。
    对于应用,按组合特性把它分成以下几类:
    A. 每个js就是独立的应用。
    B. 多个js不同的组合,也会产生新的应用,尤其是一些有特性的组合。开发时可以是多个文件,但上线时会先合并后上线。
    C. 把js里的某些方法抽取出来,也可以产出定制的应用。
    D. YUI3的use方式的应用。

    逐个分析一下以上各个应用。
    A类应用,QWrap多个js文件,有各自的分工,参考不同的标准,分得很细。独立使用的意义不大。
    B类应用,可以按不同的典型需求,定制几种典型的应用。----这是最接近其它库的使用方式,即:页面引入一个js,就能完成一类典型的需求。与其它框架不同的是:QWrap提供对好几类典型需求的应用,用户可以决定在项目、甚至页面使用哪种应用。例如:对于一个展现效率要求很高的页面,可以用先只加载种子应用,其它js通过异步use进来;对于已使用jquery的页面,可以使用core_retouched应用以与jquery互补;而对于某个一进入页面就会有很多js的文件,可以使用全面版应用;对于一个同时引用多个js库的页面,可以使用干净版的retouched应用;对于需要自动无依整的组件,可以使用纯洁版应用。等等。以后面的文章里会逐一介绍几种典型应用。
    C类应用,可拆可组的风格,产出个性化的抽取或定制功能,让个性化的精度到达方法级别。以后也讲solo工具时也会讲到。
    D类应用,YUI3的use,可以有两种方式:如果服务器不支持combo功能,则逐一加载所需的模块。如果支持,也可以在服务器合并以减少请求。----注意,这个合并与上线时的build合并的时机不一样。这个也会在讲种子应用时会有详细说明。

    另外,QWrap对B类应用的方式是:
    在开发环境下,apps/youa_seed.js的内容是这样的:
    (function(){
    var els=document.getElementsByTagName('script'), srcPath = '';
    for (var i = 0; i < els.length; i++) {
    var src = els[i].src.split(/apps[\\\/]/g);
    if (src[1]) {
    srcPath
    = src[0];
    break;
    }
    }

    //通过以下update-tag,来解决core与dom不是同时提测的问题
    //
    update-tag: core/* -
    //
    update-tag: dom/* tag001


    document.write(
    '<script type="text/javascript" src="'+srcPath+'core/core_base.js"><\/script>');
    document.write(
    '<script type="text/javascript" src="'+srcPath+'core/module.h.js"><\/script>');
    document.write(
    '<script type="text/javascript" src="'+srcPath+'apps/youa_modules_config.js"><\/script>');

    })();

    页面这样引用:
    <script type="text/javascript" src="...../apps/youa_seed.js"></script>

    上线时,页面代码不用作变动,而只需把core_base.js、module.h.js与youa_modules_config.js三个文件的内容拼接起来,当作youa_seed.js的内容

    具体有哪些B类应用,在这里可以看个目录http://dev.qwrap.com/resource/js/apps/,具体内容,且等下文……

    附: QWrap网址:http://www.qwrap.com

  • 相关阅读:
    linux自动清理30天之前的文件
    Oracle树查询及相关函数
    jackson循环引用导致序列化stackOverFlow的解决
    java核心技术36讲笔记
    Quartz学习
    Quartz学习
    java核心技术36讲
    git常用命令
    CTCall简介(后续会继续补充)
    自定义导航栏,隐藏导航栏底部的灰色线条
  • 原文地址:https://www.cnblogs.com/jkisjk/p/qwrap_apps.html
Copyright © 2011-2022 走看看