日期:2014-05-17  浏览次数:20922 次

原创MVC模式ASP框架-Javascript版本
框架说明:
1.框架还没有完全开发好,完善了模板解析的主要功能,不过我在这里会不定期的更新直至整个框架的完成。
2.框架统一采用Javascript脚本语言开发,因为本人还是不习惯VBScript,实在抱歉。
3.框架采用MVC模式,动态生成缓存文件以供系统调用。
4.框架借鉴了PHP框架实现思路。
语法说明:
1.不再使用关键字var来定义变量了,而是采用$来直接定义变量,比如$sitename,目的是和客户端有所区分。
2.常量采用全大写的格式,比如$_SGLOBAL
3.系统频繁采用静态对象,比如$_SGLOBAL,$_SC,$_SCONFIG...目的是模拟PHP的关联数组,个人感觉它非常好用且结构清晰。
好了,暂时就这些,以后如有其它约定还会在这里补充的。

MVC系统一定有它的框架结构,我的框架结构如下:
./
  admin - 后台管理目录
  data - 系统缓存,数据库备份目录
       /tpl_cache 模板生成的缓存都在这里了
  image - 图像目录
  source - 核心文件目录
  template - 模板目录
             /default 系统默认模板都在这里了(这个是必须要有的目录)
                        /image 模板相关的图像目录
             /blue 自定义模板目录(自己都可以随意定义,可能还有好多其他的模板目录)
             /...(其它的一些自定义模板目录就不一一举例了,具体格式可以参照default模板)
common.asp 网站公共文件
config.asp 网站配置文件
index.asp 网站入口文件
好,框架结构定下来了,不会有大的变动,只会有很细微的变动,也会在这里随时更新的。

下面我先把完成的一些代码贴出来。
common.asp - 网站公共文件
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<%
IN_RICHMOND = true;
X_VER = '1.0';
X_RELEASE = '20090401';

FSO = Server.CreateObject('Scripting.FileSystemObject');
XMLHTTP = Server.CreateObject("Microsoft.XMLHTTP");
STREAM = Server.CreateObject("ADODB.STREAM");

$_SGLOBAL = {

};

%>
<!--#include file = './config.asp'-->
<!--#include file = './source/function_common.asp'-->
<!--#include file = './source/function_template.asp'-->
<!--#include file = './source/class_database.asp'-->
<!--#include file = './source/class_data_grid.asp'-->
<%

//这里添加更多代码

%>
大家可以看到,首先是定义了网站的一些常量,其次包含了一些核心文件,比如公共函数库、模板、数据库、分页,后续可能还会加入更多这样的类库。

config.asp - 网站配置文件
<%
/**
* page build by Richmond 09-04-06
*/

//配置参数
$_SC = {
        dbhost: '(local)',//服务器地址
        dbuser: 'Richmond',//用户
        dbpw: '******',//密码
        dbname: 'database'//数据库
        //...
};

$_SCONFIG = {
        template: 'default'
        //...
};

%>
配置文件就是定义静态对象来存储了。

./source/function_common.asp 网站公共函数库(后续会不断的更新)
<%
/**
* page build by Richmond 09-04-06
*/

//测字符串实际长度
String.prototype.tlength = function(){
        $arr = this.match(/[^\x00-\xff]/ig);
        return this.length + ($arr == null ? 0 : $arr.length);
}

//字符串左取
String.prototype.left = function($num, $mode){
        if(!/\d+/.test($num)) return(this);
        $str = this.substr(0, $num);
        if(!$mode) return $str;
        $n = $str.tlength()-$str.length;
        $num -= parseInt($n/2);
        return this.substr(0, $num);
}

//字符串右取
String.prototype.right = function($num, $mode){
        if(!/\d+/.test($num)) return(this);
        $str = this.substr(this.length-$num);
&nb