![]() 对技术细节不做描述,从太空中看地球一样,你的肉眼是看不清你的女朋友或男朋友在哪里 javascript简述: JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。 [1] Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。 完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,字节顺序记号。 从语言的角度看javascript,你会发现真的是很简单,这门语言模块比较清晰,你或许会说:噢,原来如此 ![]() 看到了吧,结构清晰,感觉就是几块甜美的蛋糕让人垂涎三尺 说明:
ECMAScript【核心javascript】 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为Javascript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。 ECMAScript的工作是定义语法和对象,从最基本的数据类型、条件语句、关键字、保留字到异常处理和对象定义都是它的范畴。在ECMAScript范畴内定义的对象也叫做原生对象。其实上它就是一套定义了语法规则的接口,然后由不同的浏览器对其进行实现,最后我们输写遵守语法规则的程序,完成应用开发需求。
看到上面的图,可以领略到ECMAScript的家族是如此的庞大
根据DOM的定义(HTML和XML应用程序接口)可知DOM由两个部分组成,针对于XML的DOM即DOM Core和针对HTML的DOM HTML。 那DOM Core 和DOM HTML有什么区别与联系呢? DOM Core的核心概念就是节点(Node)。DOM会将文档中不同类型的元素(这里不元素并不特指<div>这种tag,还包括属性,注释,文本之类)都看作为不同的节点。 节点结构图
上图描述了DOM CORE的结构图,比较专业,来看一个简单的:
![]() div和span元素被展现成了一个元素节点,对应到节点结构图中的Element元素 "hello world"和div与span之间的间隔,被展现成了文本节点,对应到节点结构图中的CharacterDate元素 DOM CORE在解析文档时,会将所有的元素、属性、文本、注释等等视为一个节点对象(或继承自节点对象的对象,多态、向上转型),根据文本结构依次展现,最后行成了一棵"DOM树" DOM HTML的核心概念是HTMLElement,DOM HTML会将文档中的元素(这里的元素特指<body>这种tag,不包括注释,属性,文本)都视为HTMLElement。而元素的属性,则为HTMLElement的属性。 再来看一个示例: 从Node接口提供的属性
其实上DOM Core和DOM html的外部调用接口相差并不是很大,对于html文档可以用DOM html进行操作,针对xhtml可以用DOM Core。 BOM【浏览器对象模型】
BOM与浏览器紧密结合,这些对象也被称为是宿主对象,即由环境提供的对象。 这里要强调一个奇怪的对象Global对象,它代表一个全局对象,Javascript是不允许存在独立的函数,变量和常量,如果没有额外的定义,他们都作为Global对象的属性或方法来看待.像parseInt(),isNaN(),isFinite()等等都作为Global对象的方法来看待,像Nan,Infinity等"常量"也是Global对象的属性。像Boolean,String,Number,RegExp等内置的全局对象的构造函数也是Global对象的属性.但是Global对象实际上并不存在,也就是说你用Global.NaN访问NaN将会报错。实际上它是由window来充当这个角色,并且这个过程是在javascript首次加载时进行的。 总结: javascript是一门自由的语言,自由到让你不知所措,函数式编程和面向对象编程的模式可以交叉使用,顺便选择合适的设计模式会让你对这门语言另眼相看,的确,后面会有更多让你意外的事情发生。 |
-
从全局看javascript
2011-12-18 23:40:00对技术细节不做描述,从太空中看地球一样,你的肉眼是看不清你的女朋友或男朋友在哪里javascript简述: JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的...转载于:https://www.cnblogs.com/youdoce/archive/2011/12/18/2292756.html
-
从全局看数据库系统设计
2013-10-03 18:04:34尽管对数据库有了一定的学习,但第一遍看《数据库系统原理》这本书,还是感觉有些迷糊的,特别是看到关系模式、函数依赖,但这篇文章还不打算说这部分的内容,仅从系统开发的角度来谈前面两章的内容: 信息...设计过程
尽管对数据库有了一定的学习,但第一遍看《数据库系统原理》这本书,还是感觉有些迷糊的,特别是看到关系模式、函数依赖,但这篇文章还不打算说这部分的内容,仅从系统开发的角度来谈前面两章的内容:
信息系统开发结构化开发方法
当画完这张图,就产生了一种似曾相识的感觉,似乎以前学习过类似的内容,翻看了以前画的图,找出了类似的一部分:
数据库应用系统过程中提及到了三层模式和两级映像的概念,听起来神乎其神,原来早已经接触过,无非是概括了一番。在《信息系统开发与管理》一课中,极具代表性的结构化开发方法也说了同样的主题。
数据库应用系统开发 VS 信息系统开发
1.相同点:两者都是系统开发,开发过程可以很巧的说一样:规划、需求分析、设计、实现、运维。
2.不同点:前者着重介绍数据库在系统开发过程中涉及的内容,对数据库的设计过程分析较为详细,概念模型、逻辑模型、内部模型从应用系统至数据库的一步步映射,从抽象到具体的一步步实现,可以说这部分内容是结构化开发中数据库分析、设计阶段的放大。
结
学习一样东西,应先摆正它的位置,明白所处的大环境,不至于我们在研究的同时出现迷茫的情况,尽管现在还是对FD的概念没有深入,我相信也只剩一盏茶的功夫了。
-
Discuz!NT代码阅读笔记(6)--从全局看看:各个模块功能摘要(转)
2010-05-19 15:09:00Discuz!NT代码阅读笔记(1)--从HttpModule开始:首页的显示Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程Discuz!NT代码阅读笔记(3)--网站安装也能...NT代码阅读笔记(5)--从全局看看:各个Discuz!NT代码阅读笔记(1)--从HttpModule开始:首页的显示
Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程
Discuz!NT代码阅读笔记(3)--网站安装也能自动化(2)--DNT安装时使用到的几个函数解析
Discuz!NT代码阅读笔记(4)-- 一切皆可配置:页面的显示
Discuz!NT代码阅读笔记(5)--从全局看看:各个模块功能摘要
(7)Discuz.Config
这个项目主要自定义了一些控件供其它模块使用.有些控件在其它项目中用的很多.模块化设计,似的DNT的各个页面风格统一.还有压根就不知道在哪里用的控件!不知道为什么放到那里.
但有个问题是,这些控件在其它页面显示时,没有设计时支持,都是一串红字,看着很不爽.
(8) Discuz.Data
数据类.相当于DAL和BLL的说.这个项目中的DataProvider中的CS文件中包含了论坛常用功能的操作。
DbProvider中的CS文件定义了数据访问接口,这些接口在该工程中的DbHelper.cs文件中实现。
DbHelper.cs中封装了ADO.NET的常用操作,像ExecuteNonQuery()执行SQL指令,ExecuteCommandWithSplitter()方法运行含有GO命令的多条SQL命令,ExecuteDataset方法执行指定数据库连接字符串的命令,返回DataSet,ExecuteReader()数据阅读器方法,方法ExecuteScalar 返回结果集中的第一行第一列,FillDataset()方法填充数据集。
这些方法使用了Config类中提供的方法,自己从配置中读取程序的配置信息。因为配置信息基本不会变化,用户在使用这些方法时不需要再单独提供这些信息。
DbFields.cs非常有意思。它封装了常用数据表的字段。在组织SQL语句时,不必再一个个字段地输入了。程序员都是会偷懒的,呵呵。
(9)Discuz.Data.SqlServer
提供了管理操作使用的方法。相当于MVC中的C的一部分。暂时无法理解为什么不Discuz.Data和并,而是与单独放在一个项目中。难道这里的操作与数据库类型有关?
(10)Discuz.Entity
实体工程。相当于MVC中的M。这里定义来论坛和其它功能操作常用的实体描述,与数据库字段对应。其他类使用这些模型,处理和获取想要的信息。
(11)Discuz.Event
这个项目组定义了一些需要周期性自动处理的计划任务。到期自动触发,而不需要再手动调整。
(12)Discuz.Forum
程序的另一个BLL。这里定义的方法更贴近实际使用,它主要调用Discuz.Data中提供的方法蓝来处理论坛的操作。
此外还定义来功能型类.比如前面提到的HttpModule等均在此项目中。
(13)Discuz.Install
论坛安装项目。前面已做介绍。
(14)Discuz.Mall
论坛商城模块。处理一些商品交易相关功能。
(15)Discuz.Plugin
DNT附加功能模块。定义了一些接口,实现这些接口后才可在论坛中添加这些功能。
(16)Discuz.Plugin.Mail.SysMail
仅定义来一个.net邮件发送程序。没有其他功能
(17)Discuz.Plugin.PasswordMode
定义了第三方密码加密算法。从动网论坛转过来的用户使用。
这个模块基本上就是拉客户用的。。。。
(18)Discuz.Plugin.Preview.Jpg
生成Jpg图像预览功能。
(19)Discuz.Plugin.Spread
论坛扩展使用的功能模块。其中自定义了些配置信息。
(20)Discuz.Space
个人空间模块的UI。包含独立的配置功能、数据访问功能。
(21)Discuz.Space.Modules
空间模块的管理、配置等功能模块
(22)Discuz.Space.Modules.Album
个人相册模块
(23)Discuz.Web
个人认为最牛的模块。论坛的前台UI。强大的不敢看。。。以后会详细读读的。
(24)Discuz.Web.Admin
DNT后台管理模块。强大程度跟Discuz.Web 相当。
这个项目里边有一个模板生成的功能,很值得参考。
(25)Discuz.Web.Services最下边的一个项目了。具体实现了什么功能还没搞明白。
小结一下:在DNT官方论坛上看到它基本上是MVC结构,里边的很多做法值得学习参考。
这几天下载了几个其他开源的论坛、博客代码,看看无论从功能上还是从代码的结构上真不如DNT的好。
我最近做的一个东西,就参考了DNT的做法。我在一个不开源的ASP.NET程序中,通过注册HttpModule,添加了一些应用程序级的方法。只要网站启动,我的方法就要周期性地执行。同时,我的代码也优化了不少。以前,碰见访问数据库的时候,就开始定义SqlCommand、SqlDataAddapter写连接字符串,现在习惯性地先添加SqlHelper类。方便多了。
DNT引领我学ASP.NET,敬请关注。
Technorati 标签: DNT -
Discuz!NT代码阅读笔记(6)--从全局看看:各个模块功能摘要(2)
2010-05-15 12:17:00Discuz!NT代码阅读笔记(1)--从HttpModule开始:首页的显示 Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程 Discuz!NT代码阅读笔记(3)--网站安装...NT代码阅读笔记(5)--从全局看看:各个...Discuz!NT代码阅读笔记(1)--从HttpModule开始:首页的显示
Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程
Discuz!NT代码阅读笔记(3)--网站安装也能自动化(2)--DNT安装时使用到的几个函数解析
Discuz!NT代码阅读笔记(4)-- 一切皆可配置:页面的显示
Discuz!NT代码阅读笔记(5)--从全局看看:各个模块功能摘要
(7)Discuz.Config
这个项目主要自定义了一些控件供其它模块使用.有些控件在其它项目中用的很多.模块化设计,似的DNT的各个页面风格统一.还有压根就不知道在哪里用的控件!不知道为什么放到那里.
但有个问题是,这些控件在其它页面显示时,没有设计时支持,都是一串红字,看着很不爽.
(8) Discuz.Data
数据类.相当于DAL和BLL的说.这个项目中的DataProvider中的CS文件中包含了论坛常用功能的操作。
DbProvider中的CS文件定义了数据访问接口,这些接口在该工程中的DbHelper.cs文件中实现。
DbHelper.cs中封装了ADO.NET的常用操作,像ExecuteNonQuery()执行SQL指令,ExecuteCommandWithSplitter()方法运行含有GO命令的多条SQL命令,ExecuteDataset方法执行指定数据库连接字符串的命令,返回DataSet,ExecuteReader()数据阅读器方法,方法ExecuteScalar 返回结果集中的第一行第一列,FillDataset()方法填充数据集。
这些方法使用了Config类中提供的方法,自己从配置中读取程序的配置信息。因为配置信息基本不会变化,用户在使用这些方法时不需要再单独提供这些信息。
DbFields.cs非常有意思。它封装了常用数据表的字段。在组织SQL语句时,不必再一个个字段地输入了。程序员都是会偷懒的,呵呵。
(9)Discuz.Data.SqlServer
提供了管理操作使用的方法。相当于MVC中的C的一部分。暂时无法理解为什么不Discuz.Data和并,而是与单独放在一个项目中。难道这里的操作与数据库类型有关?
(10)Discuz.Entity
实体工程。相当于MVC中的M。这里定义来论坛和其它功能操作常用的实体描述,与数据库字段对应。其他类使用这些模型,处理和获取想要的信息。
(11)Discuz.Event
这个项目组定义了一些需要周期性自动处理的计划任务。到期自动触发,而不需要再手动调整。
(12)Discuz.Forum
程序的另一个BLL。这里定义的方法更贴近实际使用,它主要调用Discuz.Data中提供的方法蓝来处理论坛的操作。
此外还定义来功能型类.比如前面提到的HttpModule等均在此项目中。
(13)Discuz.Install
论坛安装项目。前面已做介绍。
(14)Discuz.Mall
论坛商城模块。处理一些商品交易相关功能。
(15)Discuz.Plugin
DNT附加功能模块。定义了一些接口,实现这些接口后才可在论坛中添加这些功能。
(16)Discuz.Plugin.Mail.SysMail
仅定义来一个.net邮件发送程序。没有其他功能
(17)Discuz.Plugin.PasswordMode
定义了第三方密码加密算法。从动网论坛转过来的用户使用。
这个模块基本上就是拉客户用的。。。。
(18)Discuz.Plugin.Preview.Jpg
生成Jpg图像预览功能。
(19)Discuz.Plugin.Spread
论坛扩展使用的功能模块。其中自定义了些配置信息。
(20)Discuz.Space
个人空间模块的UI。包含独立的配置功能、数据访问功能。
(21)Discuz.Space.Modules
空间模块的管理、配置等功能模块
(22)Discuz.Space.Modules.Album
个人相册模块
(23)Discuz.Web
个人认为最牛的模块。论坛的前台UI。强大的不敢看。。。以后会详细读读的。
(24)Discuz.Web.Admin
DNT后台管理模块。强大程度跟Discuz.Web 相当。
这个项目里边有一个模板生成的功能,很值得参考。
(25)Discuz.Web.Services最下边的一个项目了。具体实现了什么功能还没搞明白。
小结一下:在DNT官方论坛上看到它基本上是MVC结构,里边的很多做法值得学习参考。
这几天下载了几个其他开源的论坛、博客代码,看看无论从功能上还是从代码的结构上真不如DNT的好。
我最近做的一个东西,就参考了DNT的做法。我在一个不开源的ASP.NET程序中,通过注册HttpModule,添加了一些应用程序级的方法。只要网站启动,我的方法就要周期性地执行。同时,我的代码也优化了不少。以前,碰见访问数据库的时候,就开始定义SqlCommand、SqlDataAddapter写连接字符串,现在习惯性地先添加SqlHelper类。方便多了。
DNT引领我学ASP.NET,敬请关注。
Technorati 标签: DNT -
Discuz!NT代码阅读笔记(5)--从全局看看:各个模块功能摘要
2010-05-06 21:54:00NT代码阅读笔记(1)--从HttpModule开始:首页的显示 Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程 Discuz!NT代码阅读笔记(3)--网站安装也能自动化(2)--DNT安装时使用到的几个函数... -
从全局来看Spring
2015-08-07 19:55:16将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。... -
从汇编看c++中全局对象和全局变量
2013-07-24 02:24:00先来看c++源码: #include <iostream> using namespace std; class X { public: int i; public: X(int ii = 0) : i(ii) { } ~X() {} }; X xxx(1);//全局对象 int i = 2;//全局变量 ... -
从全局眼光看log,异常处理的记录
2012-02-17 16:20:00从全局的眼光看待log的记录 1. 从整个系统的角度 进程内--异常 进程间--Error code,Message, Action 2. 从进程内各模块的角度 底层模块: dll - 一般不需要catch,尽量使用try-finally,除非是自己定义的... -
如何全局看数据
2018-01-24 14:28:00要有意识地全局来看,要了解依赖的数据的来源,分类等。也要弄清楚数据的去向等等。 孤立地看数据,只会造成思路闭塞,有些问题难以发现。 开发一个子系统,那么这个系统可能会依赖一些数据,那么这些数据要知道从... -
从全局观思考
2013-07-31 21:40:33做人做事要有全局观,才能正确把握方向,才不会埋在细节里,出不来,对人对事认不清,看不明. 目前正在努力做到这点,也没掌握什么技巧,就是什么事都想着能不能从这个事中站出来,好好的把握把握;学习知识的时候提醒... -
消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局
2019-04-29 14:26:59消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局 -
消息中间件选型分析从Kafka与RabbitMQ的对比来看全局
2019-04-11 16:31:31原 消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局https://blog.csdn.net/u013256816/article/details/79838428版权声明:本文为博主原创文章,未经博主朱小厮允许不得转载。 ... -
4、看了一些代码,做了更新的规划,从全局着手
2017-07-07 23:40:47让编程变得好玩——至少对我来说是这样。只有感到编程是有趣的时候,才容易富有成效。好玩的编程(Playful Programming)是我发明的词,是极限编程(Extreme Programming,亦称XP)的非极限版本。... 从策... -
npm install —— 从一个简单例子,看本地安装与全局安装的区别
2019-09-24 08:52:54npm的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如 npm install grunt # 本地安装 npm install -g grunt-cli # 全局安装 这两种安装方式有什么区别呢... -
如何让思维具有独创性、彻底性、观念之间逻辑的严密性,以及从全局观点看问题?
2014-07-18 15:54:22如何让思维具有独创性、彻底性、观念之间逻辑的严密性,以及从全局观点看问题? 追求企业家哲学智慧,请点击上方蓝色字关注,原创的新文章,追求思维缜密,方法得当,人生不再盲目 (注:本文摘编于美国作家... -
【十一】消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局
2020-05-09 16:18:19转载:消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局 一、前言 消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。... -
消息中间件选型分析:从Kafka与RabbitMQ的对比看全局
2019-02-12 14:38:54不过如果要考虑全局的幂等,还需要与从上下游方面综合考虑,即关联业务层面,幂等处理本身也是业务层面所需要考虑的重要议题。以下游消费者层面为例,有可能消费者消费完一条消息之后没有来得及确认消息就发生异常,... -
消息中间件选型分析 —— 从 Kafka 与 RabbitMQ 的对比来看全局
2021-02-10 16:00:12不过如果要考虑全局的幂等,还需要与从上下游方面综合考虑,即关联业务层面,幂等处理本身也是业务层面所需要考虑的重要议题。以下游消费者层面为例,有可能消费者消费完一条消息之后没有来得及确认消息就发生异常...
-
图书管理系统数据库设计
-
MySQL 性能优化(思路拓展及实操)
-
C/C++:小球下落问题求解.rar(含完整注释)
-
sscom串口助手.zip
-
基于Qt的LibVLC开发教程
-
MySQL 数据库的基本操作(数据完整性约束)
-
特征金字塔
-
计算两个 420YUV 的 Y-PSNR、U-PSNR、V-PSNR 和 YUV-PSNR
-
【爱码农】C#制作MDI文本编辑器
-
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
-
TPS5430 DCDC转+5V-5V双电源AD设计硬件原理图+PCB+3D封装库文件.zip
-
37-基于51单片机的打地鼠游戏设计.zip
-
size
-
r9 5900h参数 r9 5900h核显性能
-
《python数据分析与数据化运营》4.rar
-
QT编程思想【C++,基于QT 6】
-
安卓嵌入式开发教程!国内一线互联网公司面试题汇总,安卓系列学习进阶视频
-
基于微信的同城小程序、校园二手交易小程序 毕业设计毕设源码使用教程
-
C/C++:敢死队问题求解.rar(含完整注释)
-
安卓开发api!闭关在家37天“吃透”这份345页PDF,深度解析,值得收藏