解惑

解己之惑,解人之惑

分类:Web (第2页共5页)

互联网观察

可能错怪了百度

原来我曾经写过一篇日志质疑我的访问量很多来自百度其实是百度的爬虫,最近看ShortStat的统计报告中的Last Referers发现可能是我错怪了百度,这些访问是真实的,因为从那个报告打开的百度的搜索结果看,搜索的内容和我的日志的相关度确实是比较大的,几个例子:

从这些搜索结果页面看,我的日志排名非常之靠前,但是我很奇怪,我的这些刚刚发布不久,并没有被多少人引用的日志为何可以在百度的搜索结果中排名如此靠前?难到是因为我的这个站点全部是原创,是BLOG,是经验之谈?或者真如百度自己所言:“百度更懂中文”?

浏览器缓存

相信有不少人会遇到浏览器缓存的问题,因为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")无效。

显示超长文字

不知道其它的项目的页面上的字符串是怎么显示的,我们的产品中,有些字符串很长,但是显示他们的地方可能没有那么宽,换行又不美感,我们的解决方案是显示部分文章后面放一个放大镜,用户把鼠标移到放大镜上的时候显示全部的内容,但是这个方法有个缺点,就是字符的宽度都是不一样的,我们输出的时候选择输出固定个数的字符,这样很多时候就有一些空白的地方可以多显示一些字符的(要照顾全部是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里面呢,呵呵。
最终的例子:
阅读全文

全乱套了

台湾海域的地震导致的余波到现在还没有接触,到北美的互联网还没有完全恢复,甚至情况更加的糟糕了,上周前两天还能够收到邮件,上周末开始,邮件也收不到了,SCARAB服务器只能登录进行,一到详细页面就不行了,现在到好,连CVS也不行了。我们现在只能在本地工作,而我们之间的工作是有依赖的,特别是我,这段时间的任务都要依赖别人的结果,只能等待了。
如果不是这次地震,真的不会意识到互联网是如此的重要,这种分布式开发是如此的脆弱。

豆瓣功能中最傻的一个地方

今天本来想回一个小组的发言的,但是拉到下面发现没有回复框,再拉到右边也没有回复链接,难到一定要翻到最后一页才能回复,点到最后一页再拉到页面最下面,果然有个回复框了,这个设计简直就是愚蠢至极。
现在一般的设计都是可以快速回复(无论在哪页)或者有一个回复链接或者按钮可以点击后进入一个回复页面。

Plugoo

开始用Plugoo,但是结果不好。其实一年前我也想过做这样一个东西,但是后来因为事情比较多,而且这个东西推广起来也不是很好做,就没有做。

今天试用的结果很不理想,第一次使用就失败了。

回到家以后又试了下可以工作了。不过在FF下不能输入中文,不知道是那个地方的问题。

2006年12月20日更新:
到公司又做了测试,发现还是不行,这个可能做得还不够好,在公司是必须通过代理出去的,而它没有检查是否设置代理了。

开始使用豆瓣

其实很早就在KESO那里知道有豆瓣这么个网站了,但是一直没有用。
这几天用了一下,没有什么太特别的感觉,但是着眼于以后,说不定可以找到志同道合的人。
刚开始用的时候感觉有点乱,差点就放弃了,忍受了一下,发现习惯了那种风格也还可以了。
现在最大的问题是不知道我认识的人里面还有谁在用,所以友邻是空的,在这样一个SNS的网站上,感觉自己太孤单。

如何在中国使用Google(谷歌)

照说这个不成为问题,但是今天又看到有人抱怨在中国不能用google只能用百度,看来有必要把我的经验说说了。
其实在两个星期以前我也有这个问题,整个公司都是通过一个代理出去的,有一个人搜索敏感的东西被屏蔽了就害得大家都倒霉,后来突然想到试试google.cn会不会有问题,于是在某次又被GWF掉以后,尝试打开google.cn,可以访问,搜索,也可以。
呵呵,关键就在这里了,像我这样基本上只搜索技术内容的,google.cn过滤掉的结果对我几乎没有影响,所以我把google工具类的搜索服务器直接设置为google.cn了,这样,我再也没有遇到google不能用的问题了。另外google.cn也不是只搜索中文的内容,英文的内容一样也搜索。
希望大家用得开心愉快,说不定那天大家都用我的这个方法,google中国把我招去了,或者给我寄一堆礼物也可以啊。(呵呵,小小的YY一下)

全面自动测试

今天参加了QA的一个演示,演示的是他们基于Watir的测试框架,这样加上我做的单元测试框架,我们就可以全面的进行自动测试了,使用我的单元测试框架,可以测试EJB和Action,进行的是白盒测试,而使用QA的测试框架,可以测试页面的功能,进行的是黑盒测试。

百度蜘蛛和谷歌分析之间的战斗

前次我说过我的访问很多是来自百度,这几天一直在思考,后来看了一下JR的访问统计(见后面),看到里面同时有两个和百度相关的,一个是baidu,一个是baidu.com,突然想到那个baidu可能是百度的爬虫,要不然不可能来源数量那么高。
这样我就要怀疑百度针对谷歌分析进行了某种处理,让站长们不要轻视百度的影响力,而如果谷歌发现这个情况,会不会有针对性的剔除这个访问呢?

更早的文章 更新的文章

© 2024 解惑

本主题由Anders Noren提供向上 ↑