Submitted by gouki on 2012, May 10, 9:26 AM
看这个标题,或许很多人会嘲笑我,刷新,谁不会呀。F5一按就完事了呗。
大家都知道刷新分:普通刷新和强制刷新,普通刷新的话,如果图片做了缓存(304)那么几乎是永远都看不到新图了。做开发的,当然希望是每次都强制刷新,可以看到真实的效果,不过。。。。万一用户没强刷怎么办。
看了一下taobao QA的文章才了解,刷新的种类居然有这么多:
http://qa.taobao.com/?p=15297
- 浏览器的刷新有2类
- 第1类:普通刷新。会首先从缓存中加载内容,缓存中已过期部分内容会从服务器重新请求。
- 第2类:强制刷新(刷新缓存和页面)。会从服务器重新请求所需要加载的内容
-
- 第2类刷新的情况:
- 1) 快捷键CTRL + F5
- 2) 按键CTRL + 点击工具栏刷新按钮
- 3) 按键CTRL + 点击地址栏右侧刷新按钮
-
- 第1类刷新的情况:
- 1) 点击工具栏刷新按钮
- 2) 点击地址栏右侧刷新按钮
- 3) 网页中右键菜单,点击刷新按钮
- 4) 菜单:查看->重新载入
- 5) 快捷键F5
- 6) 快捷键SHIFT + F5
- 7) 通过鼠标手势刷新
- 8) 按键CTRL + 网页中右键菜单,点击刷新按钮
- 9) 按键CTRL + 菜单:查看->重新载入
- 10) Webkit核下,快捷键CTRL + R
mac下面,几乎就是接ctrl换成command。
Firefox,如果安装了firebug,打开firebug,在net标签中可以选择:强制刷新,这样每次请求都不会从缓存中走了。
PHP | 评论:0
| 阅读:15601
Submitted by gouki on 2012, May 8, 10:17 PM
开发中又遇到一些事情,于是记录一下
1、CURL的问题
curl在安全模式下或者设定了open_basedir的情况下,如果使用了OPT_FOLLOWLOCATION,会导致无返回值。这个理由很多,但FOLLOWLOCATION这个参数是用于目标网址会多次跳转而使用,还可以设置最大跳转次数,因此,如果你要抓取的对象有多次跳转,这个参数就非设不可(真纠结,实在不行就file_get_contents了,它自动支持多次跳转,但不如curl更可控一些)
具体关于CURL的一些常用参数,可以看这里:
http://opensuse.iteye.com/blog/349829
- curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
-
- curl_setopt($ch, CURLOPT_NOPROGRESS, 1);
-
- curl_setopt($ch, CURLOPT_NOBODY, 0);
-
- curl_setopt($ch, CURLOPT_HTTPGET, 1);
-
- curl_setopt($ch, CURLOPT_ENCODING, ”);
-
- curl_setopt($ch, CURLOPT_COOKIEFILE, 1);
-
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
-
- curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
-
- curl_setopt($ch, CURLOPT_USERAGENT, ‘Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)’);
-
- $http_header = array();
- $http_header[] = ‘Connection: Keep-Alive’;
- $http_header[] = ‘Pragma: no-cache’;
- $http_header[] = ‘Cache-Control: no-cache’;
- $http_header[] = ‘Accept: */*’;
- $http_header[] = ‘Host: ‘.$url_ary['host'];
- curl_setopt($ch, CURLOPT_HTTPHEADER, $http_header);
-
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-
- curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
-
- curl_setopt($ch, CURLOPT_REFERER, $url);
-
- curl_setopt($ch, CURLOPT_URL, $url);
-
2、命令下行指定用户组来执行命令
最偷懒的方法就是:su www -c 'php xxx.php'
3、hightman遇到的Javascript函数parseInt(''),返回NaN,这个让我想起有个人做了一个PPT,来说明JS中的一些特殊问题,它的地址是:http://neatstudio.com/show-1987-1.shtml
4、PHP的header跳转
大家都知道header("Location:http://xxx.xxx.com");在这个之后如果你file_put_contents内容去一个文件,还是会被执行的,于是我们习惯性的在header跳转后继续处理一些内容,即不影响跳转,也可以完成一些内容性的处理。
但尝试了一下,如果是header()下面跟上sleep(10);你会发现header不会即刻跳转了,会等10秒后再跳转。
因此,现在了解header跳转还是会受原有代码的影响的。
5、HTML5的a标签属性ping
ping的属性说的很好,当a有href属性时,如果有ping属性,会在跳转链接时候,自动ping网站(ping标签中的对应网站),但测试了一下之后发现。居然没用。查看了一下资料,我操:
6.6 Changes from 4 March 2010 to 24 June 2010
- The
ping
attribute has been removed from the W3C version of HTML5.
我郁闷啊。。。
-------EOF------
Tags: curl
PHP | 评论:0
| 阅读:14298
Submitted by gouki on 2012, May 8, 9:19 AM
开发中遇到一些问题,值得记住,所以我记录了一下
1、在项目中为了取得泛域名的前缀网址,这个前缀是指定的a,b,c三种,如果前缀不在这三种之内,默认为a,在apache下面的时候,建了一个*.test.neatstudio.com的泛域名指到vhost中。然后用偷懒的方法list(explode(".",$_SERVER['SERVER_NAME']))就取到了a,b,c,因为在apapche中,$_SERVER['SERVER_NAME']就是实际的a.test.neatstudio.com。然而到了nginx下行不通了。在nginx下,$_SERVER['SERVER_NAME']居然还是test.neatstudio.com,最后打印$_SERVER变量,发现$_SERVER['SERVER_HOST']才是泛域名的a.test.neatstudio.com。在此做一个记录
2、chown处理大量小文件时,你就等着CPU标高100%吧。这个问题很痛苦,但没办法
3、我晶。我记得要写一个很重要的笔记 的。我TMD又忘了。被第一个问题打断了。我晶啊,算了。等想起来再说吧
Tags: nginx, apache
PHP | 评论:0
| 阅读:16522
Submitted by gouki on 2012, May 7, 10:01 AM
时区这东西,在开发的时候,你说重要吧,也还好,毕竟没它也能正常运行,你说不重要吧,那就纠结了。特别是linux系统,都TMD差上几小时,你能不痛苦吗?win还好一点。
有一些常规方法,是大家目前都在采用的
1、php.ini中的设置,这个就不谈了,
2、程序中公用文件里设置,date_default_timezone_set一下时区
3、或者。。。自己写时间处理函数,在遇到时间的时候,用这个函数处理(比较偏向于使用这种方式,如果你的用户来自于五湖四海,或许就有用了)
4、yii框架中,可以直接在/protected/config/main.php中加入timeZone,即可(补充:Yii2方法也是一样,只是config文件的位置不太一样罢了)
Tags: yii, 时区
PHP | 评论:0
| 阅读:19347
Submitted by gouki on 2012, May 3, 8:58 AM
折腾完后yiiforsae后又开始折腾yiiforACE了,只是ACE相对还是比较痛苦的。毕竟ACE的出错直接就提示一句:
XML/HTML代码
- The page you are looking for is temporarily unavailable.
- Please try again later.
然后什么信息都没有了,根本 没有办法定位程序错在哪里。这让我很是纠结,但没有办法,一点点的来吧,感觉ACE的速度挺快。而且有1G的数据库。256M的memcache。只是rewrite怎么办呢?
苦
Tags: sae, ace
PHP | 评论:0
| 阅读:14147