XML和HTML

前面的文章(dom的几个级别)说到,DOM其实包含DOM XML的,那XML是什么东西呢?和HTML又有什么关系呢?

XML 全称是可扩展标记语言,是被设计用来传输和存储数据。
HTML 全称超文本标记语言,是被设计用来显示数据。

XML是标准通用置标语言(SGML)的一个子集,而HTML是SGML的一个应用,XML就是要弥补HTML的不足,所以是未来大规模应用的趋势,而中间会有个叫做XHTML(可扩展超文本标记语言)的东西,就是要支撑HTML过渡到XML的产物,目标是替代HTML,而XHTML说得简单点,就是要求更严格的HTML。

在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。所以前面讲DOM级别的时候,有一个叫做XML命名空间的东西,其实就是将某个相同元素区分在对应的命名空间中。

最后再提提XML的几个语法规则,就知道为什么说XHTML是更严格的HTML了:

XML 文档必须有根元素
XML 文档必须有关闭标签
XML 标签对大小写敏感
XML 元素必须被正确的嵌套
XML 属性必须加引号

2018

突然发觉,2018都过去三个月了。

项目做得久,个人都有点麻木了,有时候发觉好像失去了方向,发觉自己道行远远不够啊,如何才能保持内心所向,坚持自己所想。

回头自己的技术文章,发觉当初那种冲劲留下的痕迹,深有感悟。

明天开始,新的学习方式,努力让自己做得最好。

我总想着有一天,我能干出点牛逼的事情。

数据库中的事务

        在数据库中,事务就是一个执行操作的工作单元。说得简单点,就是一个包含多个数据库操作的任务。例如,你先查这个表数据,然后再删那个表数据,再去创建一个新数据,这样的一系列的操作组成一个事务来管理。

        事务有四个标准属性:ACID。就是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

        其实我不太喜欢太多的名词,在我看来,事务就是可以让你这些操作均成功完成,若其中一个操作发生错误,则全部回滚到最初状态。

        关于这个事务处理,基于它的特点,所以有一个很重要的特征,就是事务中的每个sql语句是不会立即提交(COMMIT)的,只会当你需要提交的时候,或者结束事务的时候才统一提交(COMMIT)的。

        举一个简单的例子,我在使用SQLite(SQLite是一个轻量级的数据库,无需建立数据库连接,只需引入数据文件即可)的时候遇到了一个问题,我在一个服务器运行之前,需要检测一下数据库中的区域信息,也就是所有的省市区的常规信息的时候,执行一个sql文件(这个区域信息可以参考这个文件:区域信息)中的语句,发觉很慢,超级慢,打开SQLite Expert Pro(一款数据库可视化工具)观察,等了很久很久,然后点击一下,就崩了,发觉这样执行完全不行啊。然后用可视化工具直接复制语句进去执行,等了很久出来了部分数据,然后报错了。

        最后就找到需要用事务处理这种办法,因为sql语句中有好几千条数据,如果每读取一条执行语句都要commit一下,那么这段语句就要commit几千次了,对数据库的负担是很大的,虽然这种做法在MySQL中可以很快就完成了,但是在SQLite这种轻量级的数据库中却不是一件容易的事情,所以我在所有语句的前面加入语句:

BEGIN TRANSACTION;

        然后在所有语句最后加入语句:

END TRANSACTION;   # 或者COMMIT;

        这样就将整段语句作为事务来处理了,然后执行的时候就一瞬间就插入到数据库中了,所以数据库中的事务是非常有用的。

文章在我的github上的地址:点击跳转

原创文章,转载请注明出处!

知识共享许可协议
本文章采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。