OperaMasks中的资源处理

OperaMasks作为一个表现层框架,那么其属于对于资源机制的处理是每一个表现层框架必须处理的。

OperaMasks使用了EXT作为展现层的js支撑,其布局组件的资源渲染出的代码如下:

 

 

new Ext.Panel({
    layout:border,
    items[
        new Ext.Panel({
              //****
        })
    ]
});

 

OperaMasks所有的资源渲染在AjaxPageRenderer.java类的encodePageBegin里面,也就是head渲染出来的时候同时将资源处理好。

    //将每一个组件所包含的getDependedJSPackages和getDependedCSSPackages中的资源
    //写入到ComponentResource中
rm.consumeResourceRegister(context, viewRoot);

    // 若组件的渲染类实现了ResourceRenderer,此方法被执行,一般用于注入若干资源,如:
    // ComponentResource.getResourceInstance(rm).addInitScript(getActionURLVarDefinition(context, component)); 
rm.consumeInitScriptBegin(context, viewRoot);// 新机制

    // 此处处理资源管理器中的资源,每一个标志了@Container的渲染器在这里被调用,
rm.consumeContainerResources(context, viewRoot);

    // 由于上一方法已经调用了容器类的渲染,当么当前方法则只将容器类的渲染过滤掉
rm.consumeResources(context, viewRoot);
    // 与rm.consumeInitScriptBegin(context, viewRoot);对应,这里调的initScriptEnd
            rm.consumeInitScriptEnd(context, viewRoot);// 新机制
    // 这里开始渲染资源信息
            rm.encodeBegin(context);

你可能感兴趣的:(框架,ext)