行内技术
各种跨域方法的实现汇总
JavaScript是一种在Web开发中经常使用的前端动态脚本技术。在JavaScript中,有一个很重要的安全性限制,被称为“Same-OriginPolicy”(同源策略)。这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。JavaScript这个安全策略在进行多iframe或多窗口编程、以及Ajax编程时显得尤为重要。根据这个策略,在baidu.com下的页面中包含的JavaScript代码,不能访问在google.com域名下的页面内容;甚至不同的子域名之间的页面也不能通过Jav...
2013-3-3563
泡妞与设计模式
面试的时候,设计模式会经常被问到。其实我们在写代码中或多或少会用到一些模式,面试官问你设计模式的问题,更多是看你有没有总结过。如果一直都是在那垒代码,你当然会认为这是个很难的问题。所以我们需要总结一下设计模式。1.SINGLETON单例模式单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。俺有6个漂亮的老婆,她们的老公都是我,我就是我们家里的老公Sigleton,她们只要说道“老公”,都是指的同一个人,那就是我(刚才做了个梦啦,哪有这么好的事)。2.FA...
2013-3-3489
如何通过JavaScript动态加载js
在Web开发时,有可能会遇到这么一种情况:我们需要通过一个js文件中引用另一个js文件中的函数,可是另一个函数有没有办法在页面中通过该<script>标签加载。于是,我们有了通过js动态加载js文件的需求。下面提供一种方案。方法比较简单,具体实例详见代码:文件1:demo.jsfunctiondemo(){alert("demo");}文件2:test.jsfunctiontest(){alert("test");}functionloadDemo(){variHead=document.getElements...
2013-3-3635
一次HTTP请求中有哪些地方可以缓存
一个HTTPRequest从用户点击的一瞬间,到服务器返回请求,一般会经过以下类型的缓存(按照由客户端到服务器端的顺序)。1.浏览器端存储:HTML5中的本地存储功能允许在浏览器端保存数据。Flash等第三方插件也有类似的功能。JavaScript保存一些数据在当前Context也算这种类型。2.浏览器端文件缓存:HTTP协议中在时间未过期等情况下,不请求服务器数据而直接使用本地的文件(请参考HTTP协议中关于缓存控制的部分)。常用于htmlJavaScriptcss等文件的缓...
2013-3-3534
MFC中EditControl值的获取与赋值
EditControl是在MFC对话框中最频繁的使用的控件之一,获取EditControl与赋值是常见的操作。下面来看看如何实现。IDEVisualStudio2010,MFC工程。首先是新建MFC工程。然后在资源视图界面中,Dialog文件夹下打开IDD_NOWAMAGIC_MFC_DIALOG,自己设计界面,大致设计如下:然后选择EditControl,在属性栏点击闪电的小图标,选择BN_CLICKED,添加OnBnClickedOk事件。voidCNowaMagic_MFCDlg::OnBnClickedOk(){//...
2013-3-3590
新的JavaScript数据结构Streams
最近在网上看到了一个新的Javascript小程序——Streams,起初以为是一个普通的Javascript类库,但读了关于它的介绍后,我发现,这不是一个简单的类库,而且作者的重点也不是这个类库的功能,而是——借用文中的一段话:如果你愿意花10分钟的时间来阅读这篇文章,你对编程的认识有可能会被完全的改变(除非你有函数式编程的经验!)。还有:Streams实际上不是一个新的想法。很多的函数式的编程语言都支持这种特征。所谓‘stream’是Scheme语言里的叫法,Scheme是LISP语言的一种方言。Haskell语言也支持无限大列表(list)。这些’take’,'t...
2013-3-3582
Andriod内核的简单分析
随着嵌入式技术的发展,智能手机的运行速度和所集成的功能获得了极大提升。借着这股东风,Google主导的开放手机联盟OHA(0DenHandsetAlliance)顺势在2008年推出了Android移动终端平台。Android是一个开放、自由的移动终端平台。它的发布,打破了诺基亚Symbian操作系统和微软WindOWsMobile操作系统在智能手机平台上的垄断地位。同时,其平台化的优势也大大丰富各种手持式设备软件的功能。Android系统架构Android是Google开发的基于Linux平台的开源手机操作系统。它是一个移动终端平台,包括了移动电话所需的全部软...
2013-3-3540
用户体验使产品创造更大价值
当今时代,包括苹果、谷歌、Instagram等不同类型、不同规模、不同领域的企业和团队的成功用户体验案例,时时激发着你的热情、激励着你的梦想,向你描绘了运用用户体验力量的前景。然而,一旦开始尝试在企业中构建用户体验的力量时,你会发现:用户体验的投入与回报难于衡量,用户体验的工作方式可能与团队以往的工作方式难于融合,用户体验人才难于获得、难于领导、难于培养,用户体验的力量难于持续成长。苹果凭借不断创新的用户体验重塑了世界上的多个行业;谷歌秉承“以用户为中心,其他一切水到渠成”的理念改变着人们的生活方式;新浪微博在用户体验上借鉴创新,成为炙手可热的产品;Instagram、...
2013-3-3565
再现粘土动画大师阿特·克洛基纪念Doodle
今天的GoogleDoodle纪念阿特·克洛基90周年诞辰,阿特·克洛基是美国粘土动画大师、“小绿人冈比”创造者,纪念阿特·克洛基的涂鸦是动态的,开头一Google第一个字母开始,只要你点击任何一个东西,都可以产生非常有趣的动画。该涂鸦是为了美国粘土动画大师、“小绿人冈比”创造者阿特·克洛基90周年诞辰,冈比是由阿特·克洛基(ArtClokey)在1950年代创作并于1953年推出,当时阿特·克洛基还是在南加州大学就学,自1957年起冈比系列的动画开始在美国国家广播公司播放。GoogleDoodle由于其独特的艺术性吸引广大爱好者,纪念阿特·克洛基90周年诞辰的谷...
2013-3-3557
重铸你的互联网认识与理解
在我眼里,互联网不是关于TCP/IP,HTTP,HTML,Javascript,Ajax,Rest这些技术的构成,互联网甚至都不是很多人比喻的“水和电”这样的生活必需品那么简单,互联网的本质是通过对“人与信息关系的重组”从而实现对各种人类社会活动的深度重构。在人类的历史中,我认为只有“货币”、“文字”的发明,才可与互联网相媲美。两年多来的“触网经验(我指的是从运营企业的角度,而非用户的角度、或技术的角度)”,对互联网研究越深,越发现互联网的魅力,越感受互联网的强大。也逐步建立了我的互联网信仰:互联网将改变一切。无独有偶,最近看到Netscape创始人、硅谷著名投...
2013-3-3454
JavaScript的变量预解析特性
JavaScript是解释型语言是毋庸置疑的,但它是不是仅在运行时自上往下一句一句地解析的呢?事实上或某种现象证明并不是这样的,通过《JavaScript权威指南》及网上相关资料了解到,JavaScript有“预解析”行为。理解这一特性是很重要的,不然在实际开发中你可能会遇到很多无从解析的问题,甚至导致程序bug的存在。为了解析这一现象,也作为自己的一次学习总结,本文逐步引导你来认识JavaScript“预解析”,如果我的见解有误,还望指正。我们先来看一个例子:varlastName="Gonn";(functionDisplayLastName(){co...
2013-3-3583
GROUPBY分组查询与SQL执行顺序
在SQL中使用GROUPBY来对SELECT的结果进行数据分组,在具体使用GROUPBY之前需要知道一些重要的规定。GROUPBY子句可以包含任意数目的列。也就是说可以在组里再分组,为数据分组提供更细致的控制。如果在GROUPBY子句中指定多个分组,数据将在最后指定的分组上汇总。GROUPBY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用了表达式,则必须在GROUPBY子句中指定相同的表达式。不能使用别名。出了聚集计算语句外,SELECT语句中的每一列都必须在GROUPBY子句...
2013-3-3516
Flash平台的分析与RIA的趋势
10月3号,FlashPlayer11和AIR3.0正式提供下载,一片安静。最近这两年来,关于Flash的新闻一向是以负面为主,先是Silverlight的挑战,然后是iphone和ipad的不支持及html5的良好预期,Flash看似风雨飘摇,明灭不定。实则不然。我个人观点:Silverlight成不了Flash的竞争对手,主要原因是商业层面的原因。html5还是初生婴儿,需要进一步观察。这些在本文后半部具体分析,本文重心还是Flash。Flash平台什么是Flash平台?这个问题绝大多数人、甚至绝大多数程序员都不知道,因为Flash一直游离在主流开发人群之外...
2013-3-3552
简短的创建Ajax对象代码
假如你的脚本只针对某个浏览器开发,那么创建XMLHTTP是很简单的一件事,用XMLHttpRequest或者ActiveXObject即可。但事实上绝大多数的时候,我们都要考虑兼容,于是我们通常写成:varx;if(window.ActiveXObject)x=newActiveXObject("Microsoft.XMLHTTP");elsex=newXMLHttpRequest();当然,熟练的朋友更倾向于简练的代码:varx=window.ActiveXObject?newActiveXObject("Microsoft.XMLHTTP...
2013-3-3556
PHP如何获取客户端真实IP
REMOTE_ADDR只能获取访问者本地连接中设置的IP,如某大学校园网中自己设置的10.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址,如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP。如果将这个函数应用到限IP访问的网页中,别人即使通过限IP访问段中的代理服务器,也不能访问该页面。下面提供一个函数:<?php//定义一个函数getIP()functiongetIP(){global$ip;if(getenv("HTTP_CLIENT_IP"))$ip=getenv("HT...
2013-3-3481
理解PHP引用计数和写时复制
php使用引用计数和写时复制(copy-on-write)来管理内存。引用计算确保在引用不再需要时将内存返回给操作系统,写时复制确保在变量之间复制值时不浪费内存。要理解PHP中的内存管理,必须首先理解符号表(symboltable)的思想,变量有两部分–变量名(如$name)和变量值(如”Fred”)。符号表是一个数组,此数组将变量名映射到其值在内存中的位置。当从一个变量复制值到另一个变量是,PHP没有因为复制值而得到更多的内存,而是更新符号表,以表明“这两个变量是同一块内存的名字”。所以下面的代码实际上并没有创建一个新数组:$people=array(...
2013-3-3592
计算机科学中的数学体系
为什么要深入数学的世界作为计算机的学生,我没有任何企图要成为一个数学家。我学习数学的目的,是要想爬上巨人的肩膀,希望站在更高的高度,能把我自己研究的东西看得更深广一些。说起来,我在刚来这个学校的时候,并没有预料到我将会有一个深入数学的旅程。我的导师最初希望我去做的题目,是对appearance和motion建立一个unified的model。这个题目在当今ComputerVision中百花齐放的世界中并没有任何特别的地方。事实上,使用各种GraphicalModel把各种东西联合在一起framework,在近年的论文中并不少见。我不否认现在广泛流行的Graphi...
2013-3-3433
从编程面试准备中去提高自己
扎实的基础知识、高质量的代码、清晰的思路、优化代码的能力、优秀的综合能力是编程技术面试的五大要点。找工作一直是一个热门话题。要想找到心仪的工作,难免需要经过多轮面试。编程面试是程序员面试过程中最为重要的一个环节。如果能在编程面试的环节充分展示自己的能力,那么拿到中意的Offer就是水到渠成的事情。我多次接受他人的面试,同时也面试过很多人。总结面试与被面试的经验,我发现尽管面试官的背景、性格各不相同,但都关注应聘者五种素质:扎实的基础知识;能写高质量的代码;分析问题时思路清晰;能优化时间效率和空间效率;具备包括学习能力、沟通能力、发散思维能力等在内的综合能力。...
2013-3-3463
require_once的性能其实很低下
经过测试,require_once是一个性能低下的语法结构,当然,这个性能低下是相对于require而言的,本文阐述我们项目目前使用的require方式,通过实验代码证明其高效性,同时,描述我们在使用过程中遇到的问题,避免他人在同一个石头上绊倒。require:引入一个文件,运行时编译引入.require_once:功能等同于require,只是当这个文件被引用过后,不再编译引入。上面就是两者的区别。可以看出,两者的不同仅在于require_once有一个判断是否已经引用过的机制。通过网络搜索,可以看到很多关于require_o...
2013-3-3460
剖析HTTP中的Get与Post操作
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。Get:根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。1.所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET请求一般不应产生副作用。就是说,它仅仅是获...
2013-3-3565