以图明志

计算机算法

寻找和最大的连续子串

网易的一道笔试题
给定一整型数字a[]={a[0],...,a[n])},找出连续子串{a[x]),a[x+1],...,a[y]},使得和最大,其中,0<=x<=y<=n。要求时间复杂度为O(n)。解决思路:和最大的子串一定是以数组a中的某一个元素为结束,所以我们分别对每一个元素作为当前子串的结尾计算当前和最大的子串,再对计算出的所有子串和进行比较,最大的那个就是解。

PHP服务器脚本

PHP环境下Memcache的使用方法

介绍PHP下memcache的使用
Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。

数据库技术

MySQL中char与varchar的区别

选择char还是varchar?
char和varchar类型相似,但是它们的存储和检索方式不同。在MySQL5.0.3,它们在最大长度和是否保留尾部空格也不相同。char和varchar定义了字符串的最大长度。例如,char(30)可以放30个字符。char列的长度在你建表的时候,就是你定义的固定长度。值的范围是0~255。char值存储的时候,右部以空格来填充到指定的长度。

JavaScript

JavaScript是如何实现继承的

一个JavaScript类的继承例子
JavaScript中的function是万能的,除了用于的函数定义,也可以用于类的定义。JavaScript的继承,说起来也是有点怪,没有public,private等访问控制修饰,也没有implement或其他特定的符号来说明是实现继承。关于javascript类的继承可以参考一下以下这个例子。

PHP服务器脚本

PHP并发操作时的加锁功能

只容许一个用户在一个时间内进行操作
有这么一个需求:生成文件的时候,由于多用户都有权限进行生成,防止并发下,导致生成的结果出现错误,需要对生成的过程进行加锁,只容许一个用户在一个时间内进行操作,这个时候就需要用到锁了,将这个操作过程锁起来。在用了cache的时候,cache失效可能导致瞬间的多数并发请求穿透到数据库此时也可以得需要用锁在同一并发的过程中将这个操作锁定。

搜索引擎优化

如何使用.htaccess防止图片盗链

降低服务器的无效流量
对于虚拟主机用户来说,最方便的莫过于利用.htaccess设置图片防盗链了。上网搜了一下,.htaccess规则写法很多,但是大部分的区别在于最后一行,下面我们先看看正确的.htaccess防盗链写法,稍后我再详细解释一下最后一行的重点。

JavaScript

理清一下JavaScript面向对象思路

JavaScript的面向对象概念还是比较容易混淆的
借这篇文章理清一下自己的思路,同时也希望能给和我同样一知半解的同学理清一下思路。引发思考来自于我犯的一个错误,错误代码是这样的:...结果不用说,当然是报错的。遗憾的是我以前一直以为var o = { }是定义了一个叫做o的类。然后自己理了一下。得出一下结论:...

CSS

IE的CSS渲染跟其它浏览器有什么不同

浏览器兼容需要对IE的工作模式有所了解
由于IE系浏览器对标准的支持不够好,导致Web开发中经常需要去处理浏览器兼容性问题,特别有些莫名其妙的问题很让人头疼。如果外部样式、内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况。之所以说是一般情况是因为可以使用!important来改变这种顺序,比如外部样式如果某个样式项使用了!important来提高优先级,其优先级将比内联样式高。

PHP服务器脚本

在PHP里如何使用函数式编程

PHP中的Lambda及Closure
PHP不是像Lisp那样的函数式编程语言,更多的,PHP适合用C的风格来编写代码。PHP中没有“函数”这种类型,也就是说,函数不能直接用变量来传递。在C语言中可以通过指向函数的指针来将函数作为参数传递以实现高级的FP,而在PHP中,则是通过将函数名称作为字符串传递,通过$fname()来调用 ($fname是一个字符串类型的变量,其值为函数名),或者通过call_user_func来调用。

CSS

页面元素的CSS渲染优先级

了解CSS的优先级机制是很重要的
选择器都有一个权值,权值越大越优先;当权值相等时,后出现的样式表设置要优于先出现的样式表设置;创作者的规则高于浏览者:即网页编写者设置的CSS 样式的优先权高于浏览器所设置的样式;继承的CSS 样式不如后来指定的CSS 样式;在同一组属性设置中标有“!important”规则的优先级最大。

JavaScript

push与createElement性能比较

push()确实效率要比后者要高
下面的实验是验证push()函数与CreateElement()函数在创建HTML元素的效率。可以看出,实用push()确实效率要比后者要高,不过究竟可以高出多少,还需要有专研精神的朋友去测试了,这里仅仅是抛砖引玉。

JavaScript

关于JavaScript的push()函数

可以用来模拟堆栈
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。返回值为把指定的值添加到数组后的新长度。push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。该方法会改变数组的长度。

JavaScript

关于JavaScript的沙箱模式

JavaScript里的闭包只是一个“貌似沙箱”的东西
从语言学的角度上来说,允许代码无节制地使用全局变量,是最错误的选择之一。而更可怕的,就是一个变量"可能"成为全局的(在未知的时间与地点)。但是这两项,却伴随JavaScript这门语言成功地走到了现在。也许是限于浏览器应用的规模,所以这一切还迟迟没有酿成灾难。在此之前,出现了两种解决方案。

JavaScript

JavaScript SandBox沙箱设计模式

采用同一构造器生成彼此独立且互不干扰的实例对象
沙箱模式常见于YUI3 core,它是一种采用同一构造器(Constructor)生成彼此独立且互不干扰(self-contained)的实例对象,而从避免污染全局对象的方法。JavaScript本身中没有提供命名空间机制,所以为了避免不同函数、对象以及变量名对全局空间的污染,通常的做法是为你的应用程序或者库创建一个唯一的全局对象,然后将所有方法与属性添加到这个对象上。

JavaScript

JavaScript简单拖拽效果制作

网上常见的拖拽功能实现
说到拖拽功能,现在各大,中,小型网站都基本上有类似的东西,特别是对弹出层拖拽,更是常见的一塌糊涂。其实对于弹出层而言,拖拽最初的目的很单纯,就是为了通过拉开层,使被弹出层挡住的内容可见。

JavaScript

如何编写高效简洁的JavaScript代码

JavaScript开发经验谈
采用更为简短的写法,不仅可以减少输入的字符数,还可以减少文件大小。大部分采用简单写法的代码,执行效率都有轻微提高。当你对Javascript的内置类型变量执行某项操作时,你应该先查查这项操作是否有原生的方法。网上流传的效率优化文章非常多,一些比较专业的Javascript书籍也谈到了不少,因此,这里就只列出一些很少谈到的。
5 / 13 首页 < Prev 3 4 5 6 7 Next > 尾页 页码: