作者gpmm (银色)
看板Ajax
标题[心得] ajax / js template
时间Thu Jan 24 09:51:44 2008
小弟最近在自己打造 ajax template,
来分享一下心得。
其实外面已经有好几组 framework 是可以使用 template 这样架构的,
但都不是小弟理想中的方式。
比较多数的 framework 都是利用在原本的 page 中,
从 textarea 里加上 template structure,然後让他 display none,
再透过 js 控制存取。
但这样有个大缺点是,template 实际上并没有真正达到分离,
而且如果要动态载入新的 template,依旧必需要透过载入新页面夹带来达成。
以上是小弟对一般 template 的粗浅认知(应该有很多不同的 structure,
但小弟学浅,没有一一了解或试过… orz)
总之,最近自己动手实做 template,目前大致上的架构已经完成七成有了。
小弟的做法是这样:
首先利用 xmlHttpRequest 取回 template 的 xml,
其中 xml 包含两种主要 tag, element 和 dataset,都类似以下的结构:
<element eleType="div" eleName="mainDiv" parentNodeName="" />
<element eleType="p" eleName="p" parentNodeName="mainDiv" text="Test" />
element 是一般元素,就是 html template 中不会随资料变动的部份。
dataset 是可变动元素,也是就之後可以透过资料控制的部份。
无论 element 或 dataset 都有几个属性,用来让 js 为它建立完整的 DOM,
换言之,取回 template xml 後,便会先去扫描 element 和 dataset 两种 tag,
并建立各自的 DOM,完成基础的 template 架构。
当需要进行显示时,先透过 xmlHttpRequest 取回资料集 xml,
然後从 template 中 clone 一份架构出来(如果这个 template 尚未被 clone 过)
,将资料透过 control tree (架构 template 时所使用的架构树)
来控制或进行 loop ,并且置入相关资料。
此後的每次呼叫此 template,都优先从已被 clone 的 structure 来作为操控。
目前的想法大约是这样,小弟正在实做 dataset 的建立与相关细节,
也希望有大大可以提出想法交流一下~ :D
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.80.28.216
1F:→ xam:这个的用途有哪些呢? 01/24 20:36