闲话js前端框架(5)——再看自己一年前设计的微型渲染引擎

闲话js前端框架

前端人员=美工+设计+代码+测试

——题记

专题文章:

一、从avalonjs的模板说起

二、庞大的angularjs

三、再也不想碰DOM

四、组件化?有没有后端的事?

五、再看自己一年前设计的微型渲染引擎

六、在浏览器标准上做文章

七、抛开浏览器,构建应用容器

八、为何Flash、银光和Java都在网页端一蹶不振

本文属 西风逍遥游 原创, 转载请注明出处: 西风世界 http://blog.csdn.net/xfxyy_sxfancy

五、再看自己一年前设计的微型渲染引擎

在做了一年网站期间,我主要是以一个后端的身份在工作,有时是php,有时JavaEE,还有python,最常见的工作就是,写一个接口,将接口获得的数据判断一下异常,然后修改格式存入数据库中。

而我做前端的工作,屈指可数,就偶尔用下avalon,有时用下angularjs,其他的几乎没动过。但我在初学前端的时候,却做过一个现在我看来都是天方夜谭的设计,我制作了一个小型渲染引擎,我给他起名ntml(即将崩坏的html)。

需要引入jQuery的引擎

说这货是个引擎我也是无奈了。

首先,只有一个js类,手动导出符号,还没写闭包。使用前还需要提前引入jQuery。。。

我真想说这货是一个jQuery插件 - -!但他连插件都不算!

引入jQuery的原因其实很简单,从当时直到现在,我都不会封装跨平台的ajax函数!还有xml解析函数!

引擎的功能呢?

说起来挺好玩,一共200多行js代码,又引入了别人的一个库,实现了这个功能,将这样的代码:

<?xml version="1.0" encoding="utf-8" ?>
<ntml>
<nt-container nt-var=‘‘>
  <nt-layout-8-4>
    <a-left>
      <nt-article>
        <a-title>关于nt语法的一些介绍</a-title>
        <a-content>
          下面我们来简要介绍一下ntml这种标记式语言。
        </a-content>
      </nt-article>
    </a-left>
    <a-right>
      <nt-loginform>
        <params action=‘#‘ method=‘get‘ />
      </nt-loginform>
    </a-right>
  </nt-layout-8-4>
</nt-container>
</ntml>

渲染成这个样子:

有没有觉得很有趣?

不过功能确实不多,也就仅仅是这样一个功能,甚至连什么事件绑定啊,都没有做。

当然,这里所展示的代码并不完全,他的工作原理实际上是将xml中声明的标签,依次替换为template下预先写好的模板。对应需要有嵌套的部分,也用属性指定好每个对应的模板标签就可以了。

ntml语法规范

所有需要被ntml解析的标签前,可以加上’nt-‘,用来被解释器识别。’nt-‘是标准ntml组件库的前缀,你也可以自己规定名称前缀。

eg.

  <nt-login_form class=‘col-xs-12 col-xs-4‘>
  </nt-login_form>

nt对象下面的子对象,所有加’nta-‘前缀的,认为是nt语法中的属性

eg.

  <nt-article class=‘col-xs-12 col-xs-8‘>
    <a-title>关于nt语法的一些介绍</a-title>
    <a-date>2014-8-10</a-date>
    <a-content>
      下面我们来简要介绍一下ntml这种标记式语言。
      <nt-ad class=‘col-xs-12 col-xs-8‘>

      </nt-ad>
    </a-content>
  </nt-article>

nt对象中的params标签下的属性会被解释为声明,内容会被解释为content

eg.

  <nt-article class=‘col-xs-12 col-xs-8‘>
    <params title=‘关于nt语法的一些介绍‘
      date=‘2014-8-10‘ >
      下面我们来简要介绍一下ntml这种标记式语言。
      <nt-ad class=‘col-xs-12 col-xs-8‘>

      </nt-ad>
    </a-params>
  </nt-article>

nt对象中非nta前缀的标签也会被解释为content

eg.

  <nt-article class=‘col-xs-12 col-xs-8‘>
    <a-params title=‘关于nt语法的一些介绍‘
      date=‘2014-8-10‘ />
    下面我们来简要介绍一下ntml这种标记式语言。
    <nt-ad class=‘col-xs-12 col-xs-8‘>

    </nt-ad>
  </nt-article>

如果同时存在多个content位置的内容的话,会被从上到下依次添加

nt组件模板的开发

nt解析器会将最外层的标签解释为div,所以不必再增加嵌套div。

eg.

  <? xml version="1.0" encoding="utf-8" ?>
  <div style=‘align-center;‘>
    <h1>{{#title}}</h1>
    <h5>{{#date}}</h5>
  </div>
  <p>
    {{#content}}
  </p>

我们使用artTemplate模板引擎,建议将模板编译成js代码,使用TmodJS工具。

遗憾

这个渲染引擎最大的问题既不是效率问题,又不是功能问题,而是模板引擎的选用上。当时并不怎么了解前端,选用了一款静态引擎进行渲染。这就造成了一个问题,这个引擎估计比较适合用在后端。。。

也就是说,本来是想开发一个易用的前端引擎,却不慎做成了nodejs能用的后端引擎- -!

想看看完整的情况

Github仓库地址: https://github.com/sunxfancy/ntml

欢迎前来fork和提意见

~~(>_<)~~ ,发布已经一年了,一个看的也没有,忽然发现没写Readme!

只能怪我那时太年轻

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-19 20:51:45

闲话js前端框架(5)——再看自己一年前设计的微型渲染引擎的相关文章

闲话js前端框架(2)——庞大的angularjs

闲话js前端框架 前端人员=美工+设计+代码+测试 --题记 专题文章: 一.从avalonjs的模板说起 二.庞大的angularjs 三.再也不想碰DOM 四.组件化?有没有后端的事? 五.再看自己一年前设计的微型渲染引擎 六.在浏览器标准上做文章 七.抛开浏览器,构建应用容器 八.为何Flash.银光和Java都在网页端一蹶不振 本文属 西风逍遥游 原创, 转载请注明出处: 西风世界 http://blog.csdn.net/xfxyy_sxfancy 二.庞大的angularjs Ang

闲话js前端框架(6)——在浏览器标准上做文章

闲话js前端框架 前端人员=美工+设计+代码+测试 --题记 专题文章: 一.从avalonjs的模板说起 二.庞大的angularjs 三.再也不想碰DOM 四.组件化?有没有后端的事? 五.再看自己一年前设计的微型渲染引擎 六.在浏览器标准上做文章 七.抛开浏览器,构建应用容器 八.为何Flash.银光和Java都在网页端一蹶不振 本文属 西风逍遥游 原创, 转载请注明出处: 西风世界 http://blog.csdn.net/xfxyy_sxfancy 六.在浏览器标准上做文章 为了简化前

闲话js前端框架(1)——从avalonjs的模板说起

闲话js前端框架 前端人员=美工+设计+代码+测试 --题记 专题文章: 一.从avalonjs的模板说起 二.庞大的angularjs 三.再也不想碰DOM 四.组件化?有没有后端的事? 五.再看自己一年前设计的微型渲染引擎 六.在浏览器标准上做文章 七.抛开浏览器,构建应用容器 八.为何Flash.银光和Java都在网页端一蹶不振 本文属 西风逍遥游 原创, 转载请注明出处: 西风世界 http://blog.csdn.net/xfxyy_sxfancy 一.从avalonjs的模板说起 我

闲话js前端框架(4)——组件化?有没有后端的事?

闲话js前端框架 前端人员=美工+设计+代码+测试 --题记 专题文章: 一.从avalonjs的模板说起 二.庞大的angularjs 三.再也不想碰DOM 四.组件化?有没有后端的事? 五.再看自己一年前设计的微型渲染引擎 六.在浏览器标准上做文章 七.抛开浏览器,构建应用容器 八.为何Flash.银光和Java都在网页端一蹶不振 本文属 西风逍遥游 原创, 转载请注明出处: 西风世界 http://blog.csdn.net/xfxyy_sxfancy 四.组件化?有没有后端的事? 提到组

闲话js前端框架(3)——再也不想碰DOM

闲话js前端框架 前端人员=美工+设计+代码+测试 --题记 专题文章: 一.从avalonjs的模板说起 二.庞大的angularjs 三.再也不想碰DOM 四.组件化?有没有后端的事? 五.再看自己一年前设计的微型渲染引擎 六.在浏览器标准上做文章 七.抛开浏览器,构建应用容器 八.为何Flash.银光和Java都在网页端一蹶不振 本文属 西风逍遥游 原创, 转载请注明出处: 西风世界 http://blog.csdn.net/xfxyy_sxfancy 三.再也不想碰DOM 我只能说,在复

Mikit前端框架,轻量级CSS&amp;JS前端框架

Mikit CSS Framework Mikit介绍 Mikit是前端开发人员和前端设计师所喜爱的Web框架.Mikit的创建和设计旨在为前端社区提供最灵活而强大的CSS框架. 与许多其他网络框架不同,Mikit对于超级快速是非常好的引导和严谨的前沿,面向未来的Web开发. 基础模版 使用Mikit,您可以设置您的Web框架,并在一分钟之内完成. 只需将此代码添加到您的网页,使基本模板立即生效. <!DOCTYPE html> <html> <head> <ti

从Vue.js源码角度再看数据绑定

## 写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出.文章的原地址:[https://github.com/answershuto/learnVue](https://github.com/answershuto/learnVue).在学习过程中,为Vue加上了中文的注释[https://github.com/answershuto/learnVue/tree/master/vue-src](http

js前端框架汇总

本文概述 本文介绍2013年人气急速上升,2014年必须知道的javascript框架排名.本文所介绍的排名为Google根据全世界2013年的搜索关键词所做出的统计结果. MVC框架 JavaScript的MVC框架中人气最高的为以下四个. AngularJS Backbone.JS Ember.js Knockout.js(严格来说并不是MVC框架,而是MVVM(Model -View-ViewModel)框架) 其中AngularJS的人气明显超越其他三者,2014年要学习MVC框架者不妨

从Java的角度看前端JS各种框架

今天看到一篇不错的文章: 从Java的角度理解前端框架,nodejs,reactjs,angularjs,requirejs,seajs http://blog.csdn.net/uikoo9/article/details/45999745 (PS:还有另一篇文章也可以看看:http://uikoo9.com/blog/detail/fe web前端漫谈-uikoo9.com) 文章内容如下: [前端神秘的面纱] 对后端开发来说,前端是神秘的, 眼花缭乱的技术,繁多的框架, 如果你还停留在前端