EasyOPOA 框架API

EasyOPOA框架秉持Easy的核心思想,为了保证对开发人员的友好,API非常简单,仅暴漏了有限的几个功能性API。

EasyOPOA框架的API主要分为两类:

1. OPOA实例(OPOA Instance)定义属性(12个)

创建OPOA实例的属性API。EasyOPOA以Hash动作实例为框架核心,OPOA实例是Hash动作实例的三大组成元素(hash,url,OPOAInstance)之一。

2. EasyOPOA框架API(14个)

系统级的全局API。


1、OPOA实例(OPOA Instance)定义属性

在OPOA程序中,每一个触发的动作都需要对应一个OPOA实例,多个动作可对应同一个OPOA实例。在进行加载时,必须提前创建OPOA实例。

OPOA实例(OPOA Instance)是Hash动作实例的组成部分之一。定义了当动作执行时,对url请求加载、渲染页面的方式和细节参数。

一个OPOA实例对象包含了12个与Ajax请求和页面渲染相关的属性:actionsshowhashurlfindnotfoundmethodpushHashpreventactionMapsurlErrorsloading。部分属性具有默认值,可根据需要定义或修改相应属性。如果需要修改OPOA全局默认定义,可参考EasyOPOA.Configs参数。

 var opoa = {  
    // jQuery的DOM选择器,让DOM具有动作触发能力,自动创建Hash动作实例
    // 单击(click)该DOM元素时即会触发一个Hash动作实例
    // (可从选择的DOM中获得'Hash动作实例'所需的hash,url)
    // (结合当前opoa实例,自动创建DOM点击时触发的'Hash动作实例')
    // 例如,通过该参数选择菜单选项,让OPOA程序的菜单选项能够触发Hash动作实例
    "actions" : null,
    // jQuery的DOM选择器,显示从请求的url加载到的内容
    // 将动作请求url返回的结果显示到选择器指定的区域
    "show" : null,
    // 从DOM节点中获取'Hash动作实例'的hash值的DOM属性名称
    // 默认值:hash
    "hash" : "hash",
    // 从DOM节点中获取'Hash动作实例'的url值的DOM属性名称
    // 默认值:hash (url值默认也等同于hash值)
    "url":"hash",
    // 从服务器获得的数据中,利用find指定的jQuery DOM选择器筛选出指定区域的数据
    // 例如,从服务器中返回的数据中仅获取某个DIV中的内容
    "find" : null,
    // 当find参数的选择器,没有从服务器返回的数据中找到内容时,显示的内容
    // 可选值为"empty","all","自定义内容",function
    // "empty" 显示空内容
    // "all" 显示加载到的所有数据
    // "自定义内容" 将自定义内容的内容显示(可使用消息或图片提示用户)
    // function 执行该函数
    // 默认值:empty
    "notfound" : "empty",
    // 对url进行Ajax请求的具体方式 :post/get
    // post方式会自动将url请求后的参数转换为post参数发送
    // 默认值:post
    "method" : "post",
    // 是否改变浏览器地址栏的hash,用来定位动作
    // 在支持HTML5的浏览器可以实现基于hash的前进后退
    // 如果设为false,则加载内容时不会记录点击的动作,浏览器地址栏不会改变
    // 默认值:true
    "pushHash" : true,
    // 阻止默认事件动作。如A标签点击时不触发href
    "prevent" : true,
    // 使用actionMaps修改指定hash对应的默认url为其他值
    // Hash动作映射的`opoaInstance`默认即为当前opoa对象this
    "actionMaps" : {
        // "hash":"url",
        // "demo":"demo.jsp"
    },
    // 当对url的请求从服务器端返回错误代码时,如何处理
    // 一组数值的HTTP代码和函数对象,当响应时调用了相应的代码。
    "urlErrors" : {
        // 如果执行的动作发生404错误时,如何处理
        // 默认:如果发生404加载错误,页面不会有任何响应
        404 : function() {
        },
        // 如果执行的动作发生500错误时,如何处理
        // 默认:如果发生500加载错误,页面不会有任何响应
        500 : function() {
        }
        // 也可定义其他状态
    },
    // 在ajax请求的不同状态时分别调用的函数,可用来进行loading提示
    "loading" : {
        // ajax请求开始
        "start" : function(hash, url, opoa, postData) {
        },
        // ajax请求成功
        "success" : function(hash, url, opoa, postData) {
        },
        // ajax请求出错
        "error" : function(hash, url, opoa, postData) {
        },
        // ajax请求结束(无论成功失败都会调用)
        "end" : function(hash, url, opoa, postData) {
        }
    }
};

2. EasyOPOA框架API

EasyOPOA框架暴漏了14个系统级的全局API。

actionMaps支持三种形式的参数:标准映射对象、基于标准对象的数组参数列表、基于数组对象的列表。

//标准动作映射对象
var actionMap={"demo":[ "demo.jsp" ,opoaList.menu]};

//使用opoaList和actionMaps启动
EasyOPOA.start(opoaList,actionMap);
var actionMaps=[
    // 基于标准动作映射对象
    // {hash: [ url, opoaInstance ]}
    {"demo" : [ "demo.jsp" ,opoaList.menu]},
    {"readme" : [ "readme.jsp",opoaList.menu ]}
];

//使用opoaList和actionMaps启动
EasyOPOA.start(opoaList,actionMap);
var actionMaps2=[
    // 基于数组
    // [hash, url, opoaInstance]
    ["demo", "demo.jsp", opoaList.menu],
    ["readme", "readme.jsp", opoaList.menu]
];

//使用opoaList和actionMaps启动
EasyOPOA.start(opoaList,actionMap2);

结束

如果您有更好意见,建议或想法,请联系我。

联系、反馈、定制、培训 Email:inthinkcolor@gmail.com

支付宝钱包扫一扫捐助