Autumn Web界面生成,主要有几块工作要做:
一、把ViewData附到界面上去。
二、根据ViewSpec和ViewData创建DOM元素。
三、根据ViewSpec对刚才创建的DOM元素进行布局。
四、DOM元素和ViewData元素之间的绑定。
五、javascript脚本收集。
先看看第一块,把ViewData附到界面上去。
1、AbstractOutputHandler对象在handle方法中创建ViewCreator对象来生成视图。
2、ViewCreator拿到RootViewSpec和对应的ViewData,调用自身的createView方法。
3、在createView方法中调用createViewDataView方法,把ViewData以及下面的所有数据以div嵌套的方式挂到页面上。
接着是第二和第三块,放到一起来说。
1、ViewCreator通过setViewData方法和View对象交互,View对象通过createViewItem方法和ViewItem对象交互,ViewItem对象调用createContent方法创建UIElement和View对象。
2、ViewItem对象的createContent方法调用完成之后对其下的UIElement和View对象进行布局。View对象的createViewItem方法调用完成之后对其下的ViewItem对象进行布局。
然后是第四块,DOM元素和ViewData元素之间的绑定。
1、生成ViewData和其子元素的Div。
2、生成html的DOM元素。
3、ViewCreator对象在createView方法中调用View对象的closeout方法,在对应的DOM元素上绑定ViewData对应的Element ID。同时View对象把命令分发下去,让其子ViewItem对象调用各自的closeout方法,在ViewItem对应的DOM元素上绑定ItemData对应的Element ID。
最后是第五块,javascript脚本收集。
1、AbstractOutputHandler对象通过持有的View对象调用其getScript方法,从而调用该View对象的getScripts方法。
2、由View对象分发下去,让其拥有的ViewItem对象调用getScripts方法。
3、ViewItem对象收到请求后,分发命令,让其下的UIElement和View调用各自的getScripts方法。
4、调用完毕之后,返回脚本拼装起来的字符串。
5、在服务器端输出给浏览器端的时候,以content.html为模板,用脚本内容替换占位符“${scripts}”。
分享到:
相关推荐
事件驱动机制,本人原创,欢迎下载使用,欢迎发表高见
eSir openwrt 高大全 2022 autumn legacy 固件版本
无修改的原版主题.可以兼容最新版本的wordpress,需要的人可以直接拿走.
Autumn是一个Web 子系统的集合,旨在提供通用的Web 系统解决方案。 它具有可扩展性和稳定性,您可以基于它开发自己的 Web 系统。 此外,您可以加入我们一起维护它,只要您对它感兴趣。 请将问题提交到相应的项目中,...
happy mid autumn festival ,二维码生成器
web_programming2020_autumn
合工大自然语言处理实验资源(带界面,内含数据集,实现了数据处理,中文分词,宋词生成)
Autumn 项目介绍 采用Spring、Spring Boot、Redis、MyBatis、Shiro、Druid框架开发,搭载mysql数据。 如果你厌烦了MyBatis中需要手动创建表的事情,这个项目非常适合你,自动为你生成表。 从此你不在需要导入sql文件...
autumn_presentation2
JAVA 极速WEB+ORM框架 Autumn Autumn 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发Swift、学习简单、功能强大、轻量级、易扩展。 有效提高web项目的开发效率!为您节约更多时间,去陪恋人、家人和...
数库公司的抓取项目,难度轻重不一,如果是学习抓取的话,还是比较适合的
PJBlog2 autumn-red
四年级英语作文秋天Autumn
autumn.m
autumn_myst
autumn_presentation
PJBlog2 Autumn
2022-Autumn-01.ipynb
unity秋天雪山模型,导入方便。unity秋天雪山模型,导入方便。unity秋天雪山模型,导入方便。