您正在查看 "技术追峰" 分类下的文章
2009-04-22 16:24
有一些动态图片虽然是用php脚本生成的,但是希望可以在客户端缓存,因此在nginx的配置文件里边增加了一个if语句来控制缓存有关的header。
# 动态图片部分需要使用缓存
location ~ .*\.php$ {
if ($request_uri !~ ^/dynamicimg/) {
add_header Cache-Control "no-cache, no-store, max-age=0, must-revalidate";
|
2009-03-18 13:47
对于聚合类网站来说,在显示内容中图片的时候,需要解决一个问题:有的网站对图片采取了防盗链的措施,只有当请求头的referer来自指定的host时才会正确显示图片,比如,百度空间的,163空间的。那么,理所当然的,在显示来自这些网站的内容时,需要对图片标签进行一些预处理,使得相应的图片能正确显示出来。
一般的处理方式,都是利用正则表达式来找到img标签,并对src中的url进行检测,如果是来自这些禁止外链的网站过来的图片,则对src进行一些替换,使得其能正确的显示。比如一个src="http://hi.baidu.com/aaa.jpg |
2009-02-17 01:18
单硬盘的服务器总是要面临数据备份的问题,前文讨论过单硬盘服务器上《 中小规模mysql数据库备份的gmail解决方案》,这里来讨论图片数据的备份问题。同样,在“云计算”时代,我们依然可以用google提供的服务—— picasa来解决这个问题。
一、flick、yupoo、picasa服务的对比
不过,之前还是来讨论一下为什么要采用picasa提供的服务,而不是选 |
2009-02-08 02:50
假设有一台linux服务器,只有一块硬盘,跑着几个中小规模的mysql数据库,你会考虑怎么来实现数据库的备份呢?在本机备份吗?当然。但是,这样总归是稳定的,因为操作系统总有那么些几率出现崩溃,硬盘也不总是很稳定地工作,也许有一天一些意外就会让它“猝死”。因此,找一处别的地方来备份数据库中的数据总是有必要的。如果你对google够信任,那么完全可以用它来解决这个问题。
基本的原理如下:
1、用mysqldump把相应数据库的数据导入到一个文件,如果文件够小,可以直接以邮件正文的形式发送给gmail。 |
2009-01-19 22:07
以前实现某个网站的界面时候,需要实现这样一种界面布局:右栏固定,左栏自适应宽度。这貌似是一个简单的命题,但却内含玄机:
首先,因为界面显示速度的需要和seo的优化,不会用table去实现。
其次,要实现右栏固定,左栏自适应宽度的需求其实还不是难事,但是却隐含另一个难以解决的命题。
可将右栏的position设为absolute,并且设置其right和top值,就可以将其固定在右边同一个地方,而左栏则可以设置其margin-right为适当的数据,就可以使其宽度总是距离右边一定的距离,使右栏显示出来的同时,也满足了 |
2009-01-04 11:02
使用zend框架时常见的url重写模式一般都是由两部分组成,即:controller/:action这种模式。比如说一个博客,其发表文章的地址有可能是article/write,那么最终会调用ArticleController中的writeAction来进行相关的控制。稍微复杂一点,查看一篇文章的地址有可能是article/1111,我们可以利用Controller_Router_Route_Regex写它的路由:
new Zend_Controller_Router_Route_Regex(
'article/(\w+)',
array(
'controller'=>'a |
2008-12-08 01:47
mysql的权限分配过程中,会用到“mysql“数据库中的user、host和db这三个重要的权限表。通过user这个表可以知道具有mysql权限的用户到底是哪些。如果我们够仔细地话,往往能够发现user表中竟然存在有一些匿名用户。比如,在我的ubuntu上装的mysql中就有这样的用户:
mysql> select * from user\G;
*************************** 4. row ***************************
Host: localhost
|
2008-11-08 16:57
我现在的OS用的是win2003,为什么不用xp呢?昨天就有朋友问我这个问题,我初步解释为“有的软件在xp里边支持不好”。其实,具体而言就是指xp下IIS不能新建站点这个限制。这对于我前一段用.net开发分布式站点的方案是不好应付的,所以,最后不得不因为这么一个小小的限制换到win2003系统。
不过,今天一个不经意的搜索让我了解到,原来是可以在xp里边摆脱这种限制的,前提条件就是,在apache这个web服务器里边来跑asp.net的网站。在google里边搜索“ |
2008-11-06 00:17
以前在使用 鲜果修改个人资料的时候,就遇到这样一个问题:更新自己的头像以后,看到的头像却还是和原来一样。对于开发人员来说,很容易就会想到,这是这个头像对应的文件已经在浏览器端进行了缓存,没有重新向服务器请求,所以会导致更新头像后依然看不到任何变化的情况出现。这时候,只要按一下F5或者浏览器的“刷新”按钮,浏览器就会把最新的头像显示出来。也就是说,浏览器重新向服务器请求了一次这个头像对应的文件。不过,这样的事情要让一个普通用户来理解,还 |
2008-09-24 11:41
在javascript中,要判断字符串是中文是很简单的。比如:
var str = "php编程";
if (/^[\u4e00-\u9fa5]+$/.test(str)) {
alert("该字符串全部是中文");
} else {
alert("该字符串不全部是中文");
}
想当然的,在php中来判断字符串是否为中文,就会沿袭这个思路:
<?php
$str = "php编程";
if (preg_match("/^[\u4e00-\u9fa5]+$/",$str)) {
print("该字符串全部是中文");
} else {
print("该字符串不全部 |
2008-09-04 11:43
这几天大家都在说google的网络浏览器 Chrome,赞扬和批评的都有,赞扬的观点大致在这几个方面:js运行效率,google gears的集成,flash插件的直接集成,页面简洁,阅读空间大,没有多余的功能。批评则主要集中在浏览器插件的可扩充性,以及基本功能的缺失,比如:鼠标手势,网页打印等。
不过,对于一般的使用者来说,是不是能正常浏览常用的网站是相当重要的一项指标。这不,今天用chrome看网易博客的时候就出现问题了:进入页面几秒后,在用ajax加载日记列表时, |
2008-08-20 00:43
使用IIS作为web服务器时,输出的aspx页面的response headers中总是会自动带上X-Powered-By、X-AspNet-Version和Server这几个项。而使用其他web服务器时,往往能获得更加简洁的response headers。对于高负载的网站来说,能节省几个response header项,应该也能节省客观的流量。而从程序员的角度来说,要这些header项出来,一则暴露了网站程序所使用的版本,二来也破坏了简单之上的原则。因此,一直都在寻找去掉他们的办法。
9588.com是一个典型的以IIS为服务器的网站,通过Firebug可查看其首页的Response Headers:
|
2008-07-31 13:34
这两天在使用vs2005创建windows服务的时候,遇到了一些问题,特此总结一下。问题都不大,不过对于我这样刚开始接触windows 服务这一块的新手来说,还是有一定的难度的。
一、Windows 服务的调试。
Windows 服务的调试还的确相当不方便,因为它是已经脱离了vs的环境,不能通过单步调试来获得程序当前运行的状态——不过后来证实这种错误是错误的。
如何用.NET创建Windows服务
这篇文章中 |
2008-07-30 23:59
可能是太过于懒惰的原因,研究个windows 服务的安装程序都花了大半天时间。在网上看了一些示例,大部分都言过其实,把过程搞得太过复杂,老是需要去研究如何利用InstallUtil.exe及其参数。事实上,既然要安装.net下制作的windows服务,肯定首先得在目标机器上安装有.net框架。因此,InstallUtil.exe也一定已经存在目标机器上了,因而利用微软的傻瓜式操作就能很好地解决windows服务安装和卸载的问题。
过一段时间估计还要狠狠地利用windows服务来完成一些功能,为了加深印象,又回过头弄了一个名叫HelloWorldService的windows |
2008-06-20 22:54
昨天花了有差不多一个小时来写 上一篇文章,发到 博客园首页,本以为能像上上篇文章一样获得好评,不过结果却出乎意料,头两个人就提出异议来了。
一楼说:
利用onclick事件的srcElement属性会不会更简单?
二楼说:
有个event.cancelBubble=true;可以阻止事件往父控件继续触发。。
可以 |
|
|