代码改变世界

Openstack之Swift架构(Cloud Storage)

2014-02-19 11:04 by MoltBoy, 533 阅读, 0 推荐, 收藏, 编辑
摘要:Swift是OpenStack的子项目之一,也称为对象储存,适用于储存永久类型的静态数据,例如:虚拟机镜像文件、图片、存档备份等 复制的三个副本如何联系在一起? 让我们用一些具体场景和介绍一些组件,来描述副本如何联系在一块。 Upload 用户端调用Swift提供的REST API,PUT一个对象到一个已经存在的容器中。PUT http://swift.example.com/v1/account/container/new_object Cluster收到客户端的request,首先,系统将计算Data应当存放在哪个位置?根据Account name, Container na... 阅读全文

javascript —— HTTP头文件详解

2013-06-16 20:50 by MoltBoy, 1452 阅读, 0 推荐, 收藏, 编辑
摘要:HTTP(超文本传输协议:HyperText Transfer Protocol)是浏览器和服务器通过internet进行相互通信的协议,也是网络上应用最为广泛的一种网络协议。HTTP规范由World Wide Web Consortium(W3C)和Internet Engineering Task Force(IETF)进行编制,文档是RFC2616。HTTP1.1是如今比较常用的版本,但是有些浏览器和服务器仍在使用老版本1.0。 HTTP协议由请求和响应构成。浏览器端向特定的URL发送HTTP请求,URL对应的服务器经过处理请求,然后返回HTTP响应。和许多Internet服务一样... 阅读全文

Ajax —— 多并发连接及前端设计模式

2013-06-02 16:50 by MoltBoy, 4931 阅读, 2 推荐, 收藏, 编辑
摘要:Ajax简介 Ajax是Asynchronous Javascript and XML的缩写,这个术语由Jesse James Carrett创造,最早出现在他于2005年2月发表的文章“Ajax: A New Approach to Web Applications”。其主要的特点就是使用脚本操纵HTTP和Web服务器进行数据交换,不会导致页面重载。 Ajax并非一门新的开发语言,而是一组技术的专用术语,包括DHTML和XMLHTTPRequest对象,而DHTML通常是指HTML、CSS和javascript组合使用。Ajax的本质也就是从服务器动态请求数据后使用这些数据更改页面。... 阅读全文

加快javascript代码运行 —— 避免长时间运行

2013-05-23 19:38 by MoltBoy, 2854 阅读, 2 推荐, 收藏, 编辑
摘要:前面一篇讨论了XHR对象已经异步的部分观点,异步能解决许多长时间运行交互问题,但它绝不是适用于任何地方。 长时间运行的原因 javascript运行在浏览器环境中,因而分配的资源数量是十分有限的,不同于桌面程序能随意控制它们想要的内存大小和CPU时间,Javascript被严格限制了。甚至长时间运行脚本都有一定约束,假如代码运行超过了特定的时间限制或者运行的语句数量超出特定约束,浏览器就会弹出错误提示框,询问是继续运行还是停止它。 出现这种情况的原因主要有两个:过长或过深嵌套的函数调用;进行了大量的迭代处理。for(var i = 0, len = obj.length; i < l.. 阅读全文

javascirpt系列之 - XMLHttpRequest对象(续篇)

2013-05-15 22:42 by MoltBoy, 1960 阅读, 0 推荐, 收藏, 编辑
摘要:—— 生命中最可贵的东西永远是时间,多挤点时间充实自己,别再肆意糟蹋青春。 接着昨天的内容。前面说的4个重要的步骤,已经都得到实现,在这里XMLHttpRequest还有两个方法,setRequestHeader()方法设置HTTP请求的头信息。abort()方法终止正在进行中的请求。一般极少这样做,并且终止之前,应当先清除onreadystatechange事件处理程序。(指派一个空函数给onreadystatechange,若给它null值,会发生难以预料的错误) xhr.setRequestHeader(header, value),调用此方法之前必须进行以下步骤: 确保sta... 阅读全文

javascirpt系列之 - XMLHttpRequest对象

2013-05-14 23:36 by MoltBoy, 1751 阅读, 2 推荐, 收藏, 编辑
摘要:最近在做一个关于Ajax的项目,项目本身非常简单,但是接手项目之时,设计了过多的特效,导致为了兼容不得不让代码几何增加。设计项目设计图之时也过于简单潦草,不过总算完成任务,但不能就此了之,必须得挤些时间出来回顾和总结,将好的一些经验和不足之处分别进行记录,避免同一个地方跌倒两次。 进入正题,XMLHttpRequest对象其实是浏览器的一个标准接口,主要通过http协议与后台服务器交换数据,可惜地是这个接口一直没有得到W3C的标准化,直到HTML5的概念出现。不过,2008年2月份,已经提出了XMLHttpRequest Level 2的草案。 创建XMLHttpRequest 通过... 阅读全文

浏览器详谈及其内部工作机制 —— web开发必读

2013-05-05 23:08 by MoltBoy, 2851 阅读, 11 推荐, 收藏, 编辑
摘要:浏览器介绍 如今,浏览器格局基本上是五分天下,分别是:IE、Firefox、Safari、Chrome、Opera,而浏览器引擎就更加集中了,主要是四大巨头:IE的浏览器排版引擎Trident,目前随IE10发布了Trident6.0;Mozilla的排版引擎Gecko,今年4月2号发布了Gecko21预览版,稳定版本为Gecko20;Google Chrome和Apple Safari使用的是WebKit引擎,它已经成为市场占用率最高的排版引擎;另外还有Opera的Presto引擎,不过在今年的2月13号,Opera Software宣布未来产品将以Webkti和V8为主,逐步放弃基于... 阅读全文

面向对象 - javascript创建对象模式总结

2013-05-04 20:22 by MoltBoy, 892 阅读, 0 推荐, 收藏, 编辑
摘要:面向对象(Object-oriented,OO)是如今主流的编程模式,而面向对象又分为(OOA-面向对象分析、OOD-面向对象设计、OOP-面向对象编程),我们常常挂在嘴边都是OOP。通常,面向对象都有类得概念,javascript中没有涉及到类得概念,却有对象的概念。在ECMA-262中把对象定义为:“无序属性的集合,属性值可以为基本值、对象或函数”。实际上,对象可以理解为散列表,就是一组租名值对,其中值可以为数据或者函数。 了解了对象的概念,下一步当然是创建对象。在平日里讨论,经常能听到:“工厂模式”、“组合模式”...等一些关于创建对象的术语。下面的内容就具体讨论各模式的特点及其优... 阅读全文

javascript性能优化总结 —— 编程习惯篇

2013-05-03 21:00 by MoltBoy, 1989 阅读, 1 推荐, 收藏, 编辑
摘要:在google,网页呈现速度慢500毫秒将丢失20%的流量;在yahoo!,慢上400毫秒将丢失5%-9%的流量;在亚马逊(Amazon),慢上100毫秒将丢失1%的交易量...这是速度绝对成败的web时代,天下武学唯快不破,相信没人嫌弃网页打开速度太快吧! 那么要让网页速度更快,我们应该如何优化,应该保持怎样的编程习惯,让代码运行的更加流畅?在这里,郑重推荐《高性能网站建设指南》和《高性能网站建设进阶指南》,完全掌握这两本书的内容对你的前端生涯将是受益匪浅。 言归正传,javascript是解释型语言,执行速度自然比不上编译型语言,另外,计算机系统分配给浏览器的资源有限,分给web应... 阅读全文

canvas —— javascript实现各种复杂规律图案

2013-04-30 22:27 by MoltBoy, 2224 阅读, 2 推荐, 收藏, 编辑
摘要:在HTML5中新增的元素中,个人最喜欢的就是canvas元素。这个元素负责在页面里设定一个区域,然后在这个区域内通过javascript动态绘制图形。目前大部分浏览器新版本都支持此元素。 canvas元素具备绘图能力的上下文环境,另外还建议了一个名为WebGL的3D上下文,但是目前大部分浏览器对canvas的3D上下文支持不够好,特别是老版本的浏览器,甚至在window xp中缺少支持必要的绘图驱动程序。 那么,今天我们就在2d上下文中,共同探讨下这个非常有意思的新元素。 要使用canvas元素,必须先设置其width和height,默认值分别为300和150。设置的时候有点奇怪,使... 阅读全文