解惑

解己之惑,解人之惑

第49页共82页

浏览器缓存

相信有不少人会遇到浏览器缓存的问题,因为IE默认会缓存访问过的网页,特别是URL的参数是固定的,但是很可能内容会变化。
大部分都知道的可能是在head中增加meta信息:
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
而有文章指出这个依然有问题,如果网页内容超过32K,那么那个设置就实效了,所以要把它放到网页的最后:
            <BODY>
网页内容。。。
</BODY>
<HEAD>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</HEAD>
</HTML>

现在AJAX很流行,而AJAX返回的内容很可能不再是一个完整的网页,那么就不能使用上述的方法,有另外的文章说到可以使用服务器端的HTTP头控制,我试验的结果是无效
    response.setHeader("Cache-Control","no-cache");
    response.setHeader("Cache-Control","no-store");
    response.setHeader("Cache-Control","must-revalidate");

最后采取的方法就是在使用AJAX发送请求的时候附加一个时间戳:
var xmlhttp = createrequest();
xmlhttp.open("GET",appendTimestamp(url),true);

  function appendTimestamp(url)
  {
      if (url.indexOf("?")>0)
      {
          return url+"&ajax_time="+new Date().getTime();
      } else
      {
          return url+"?ajax_time="+new Date().getTime();
      }
  }

当然这个方法也只能解决部分问题,如果URL太长也不行。

更新:
对于AJAX的情况,也可以使用
xmlhttp.setRequestHeader("Cache-Control","no-cache");

推荐另外一个日志:再论怎么有效利用浏览器缓存之怎么避免浏览器缓存静态文件

2007年2月28日更新:
使用服务器端控制AJAX页面缓存:
    response.setHeader( "Pragma", "no-cache" );
    response.addHeader( "Cache-Control", "must-revalidate" );
    response.addHeader( "Cache-Control", "no-cache" );
    response.addHeader( "Cache-Control", "no-store" );
    response.setDateHeader("Expires", 0);
单纯的使用 xmlhttp.setRequestHeader("Cache-Control","no-cache")无效。

痛苦的春节

虽然这样说不太好,但是这个确实是我的真实感受,回家的票买不到,回来的票也买不到。本来是坐别人的车回去的,但是他们决定今天就走,下午两点出发,先到扬州,然后明天再上路,而我今天不能走,事情还没有做完,而且那样的话也比较麻烦,打电话到航空售票的地方,最开始说只有明天下午的一个航班,还是头等舱,只有一个位子,后来又打电话给我说今天下午有一个位子,950(票价810,建设费100,手续费40),我回去商量了一下,然后再打电话要票他们竟然又涨价到1000,我就不想要了,然后又告诉我明天晚上还有一个位子,晚上8点多的,10点20到武汉,这个还是950,我就要了明天的,反正回去也没有什么事情,老婆竟然责怪我为了省50块钱晚一天回去,为了赶下午的飞机,我还要多请一天半的假,而且手头一点剩下的东西还没有完成呢。
哎,春节实在是不愿回去,回去麻烦回来也麻烦,不过自己在上海过年可能又太冷清了。

Crystal Report的几个问题

我们美国那边做Crystal Report的人走了,所以这个版本中,Crystal Report相关的一些bug就都由我来修改了,很痛苦
在这个过程中深切的感受到Crystal Report的一些问题:

  • 没有比较好的重用机制,特别是一些公式或者Formula以及显示内容的格式,而模版功能还不够强大
  • 子报表不能再包含子报表,这个也很痛苦,在创建复杂的报表内容的时候尤其痛苦,只能通过修改视图解决
  • 从数据库取数据的时候默认是大小写不敏感的
  • RPT文件是二进制格式,不利于版本比较
  • 保存数据库结构信息,例如表的完整定义,如果更新了数据库,那么报表可能不能运行,但是实际上修改对报表没有影响(例如增加了一个表字段)

无趣的程序员

公司每个月给每个员工一定的费用用于团队建设,也就是Team Building,从这些费用的使用情况我们可以看到程序员是多么的无趣。我们公司主要就是两个团队,一个是开发团队,一个是测试团队,测试团队的Team Building活动非常的丰富,结伴游玩,体育活动,吃饭等等,而开发团队的活动自我进这个公司以后只有一项:吃饭,而且经常是只在有人离职或者重大假日的时候,去年的羽毛球活动只有四个人参加,有一个还是QA的,其它的人都是偶尔来一次两次,而实际上他们住的地方距离活动的地方都不远。另外一个比较明显的现象就是吃中饭,开发团队有几个人是带饭的,其它的一律是订饭让人送到办公室来吃,而测试团队经常是结伴出去吃活动活动,而且时常换地方吃。开发团队没有一个女的,测试团队有一半是女的。
其实我感觉自己很没有情趣,和老婆在一起的时候也没有什么活动,基本上就是陪她逛街或者在附近的一些景点玩玩,其它的时间基本上就是看下载的电视电影或者打游戏,但是和我们组的其它人比起来,我好像还不是那么的无趣或者懒惰?

wp_list_cats

今天又验证了下首页,发现又不符合XHTML1.0标准了,问题的根源在于我修改了分类输出的代码:
<h2>分类</h2>
<ul class="counts">
    <?php wp_list_cats(‘sort_column=name&optioncount=1&hierarchical=0&feed_image=/images/feed.gif’); ?>
</ul>

这样输出的图片的内容为:
<img src=‘/images/feed.gif’ />

这个输出不符合XHTML1.0标准,需要ALT属性,看了下Wordpress的源代码(template-functions-category.php)中wp_list_cats的实现,发现要输出ALT就必须指定Feed选项的值,修改后的结果:
<h2>分类</h2>
<ul class="counts">
    <?php wp_list_cats(‘sort_column=name&optioncount=1&hierarchical=0&feed_image=/images/feed.gif&feed=Feed’); ?>
</ul>

房子还没有过户

本来是9号过户的,但是在办理的过程中出了点问题,由于上家也没有卖房的经验,在办理的过程中,在输入房产证密码的时候连续三次输入错误,很奇怪这个事情为什么会发生,责任可以说是除了我们外都有,在办理的时候,律师让拿出存折密码,然后要求她输入密码,但是没有说是什么密码,卖家以为是存折密码,在已经输入错误两次的情况下也没有人提醒到底是什么密码,协助的律师应该提醒,办理手续的房产中心的人员应该提醒,中介也可以提醒,卖家也应该问一下到底是什么密码,因为她竟然不奇怪办理过户申请为什么要输入自己的存折密码?当别人要求她输入密码的时候,她竟然也不问一下要输入什么密码。
另外一个奇怪的是后来回来搜索房产证密码锁定的规定,竟然没有什么太多的消息,只有一个南京的规定是三天后才能办理,但是上海要15天,而且没有搜索到任何相关的网页信息。

更新:
在缩小搜索范围以后总算是找到了15天锁定的说明,不能交易是因为密码失效,而重置密码需要15天。

星际之门

这几天一直都在看星际之门之亚特兰帝斯,第一集就深深的吸引了我,题材是我最喜欢的科幻类,而且是和外星人以及太空旅行有关的,不过看完已经上映的3季第16集以后也感觉不太好了,在看的过程中就开始隐隐感觉有些情节过于的老套,例如主角的运气永远是那么的好,不可能因为什么混乱状况死掉,在最后关头或者最后一秒钟成功的完成任务;而且有时候感觉整个电视剧都在散播美国的文化,在很多时候都在宣扬美国的国家观和人权观(美国拍的电影当然会这样了)。就我个人来看,美国的一些电影说宣扬的东西是好坏参半,它所宣扬的注重生命是对的,但是在对待国家利益或者民族利益以及他人特别是它国的人的时候就显得过于的混乱,最终还是归结为以自身的利益为根本利益。

血压和心跳

给岳父买了一个血压计,先自己测试了下是不是可以用,测量的结果是高压117,低压71,心跳77,回来给老婆测了下,她是111,低压81,心跳91,按照我原来的印象,正常的应该是高压120,低压80,心跳是60左右,发现我们两个好像都不是很正常,上网搜索了下,发现原来是自己的误解,高压120,低压80只是一个标准参考值,也可以理解为最正常的值,实际上高压正常范围在90到140,低压60到90,高压低压相差30以上就行,而心跳是60到100,大部分是60到80,女人稍快一些,这样看来,我们两个都算是正常的,而且好像我的指标都还不错。

显示超长文字

不知道其它的项目的页面上的字符串是怎么显示的,我们的产品中,有些字符串很长,但是显示他们的地方可能没有那么宽,换行又不美感,我们的解决方案是显示部分文章后面放一个放大镜,用户把鼠标移到放大镜上的时候显示全部的内容,但是这个方法有个缺点,就是字符的宽度都是不一样的,我们输出的时候选择输出固定个数的字符,这样很多时候就有一些空白的地方可以多显示一些字符的(要照顾全部是M或者W的情况,不考虑中文),然后美国那边要求研究一下有没有好一些的解决方法,可以根据宽度自动显示相应的字符串,如果某些部分的宽度调整了也自动的多显示或者少显示一些字符。
本来我找到一个使用CSS的方法,可以较好的满足上面的需求:
<style type=’text/css’>
.smartStringExpander {
  word-break : break-all;
  overflow:hidden;
  width:200px;
}
</style>
<div class="smartStringExpander"><nobr>abcdefghi jklmnabcdefghi jklmnabcdefghij klmn111111111</nobr></div>
但是我怎么也不能再在后面加一个放大镜的图片了,如果把overflow那个属性移掉就可以在后面加了,但是又失去意义了。
郁闷

更新:
在郁闷的时候突然想到自己很傻,为什么把那两个部分丢到一个table里面呢,呵呵。
最终的例子:
阅读全文

失败的网上银行体验

本来打算在淘宝上买个血压计孝敬岳父,但是给支付宝充值的时候没有成功,分别试了招商银行和民生银行的,民生银行的问题可能在于淘宝,因为支付的时候它默认的是非签约客户,也就是大众版,不知道如何选择使用贵宾版支付;而招商银行是银行的问题,不能使用一卡通支付,只能使用信用卡支付,而我忘记了信用卡的支付密码,本来想打800电话修改密码,但是800电话打不通。

更新:
后来使用民生银行成功,那个密码是取款密码,而不是网银的密码。

« 更早的文章 更新的文章 »

© 2025 解惑

本主题由Anders Noren提供向上 ↑