23 May 2006, 16:20 UTC

昨日收集 - 东拉西扯:新浪沉没

2006-5-23

Logo

23 May 2006, 03:56 UTC

比较郁闷的MM_preloadImages问题

最近工作的过程中发现用Javascript做图片预读取总是出问题:

  1. 做个展开菜单,展开项目的底图总是不能直接显示出来。
  2. 做个缩略图切换,左右切换的时候,新换出来的图片总是不显示,非得使用鼠标右键选显示图片才行
  3. ……

代码逻辑应该没问题,所以最后归结到使用的MM_preloadImages()上,不知道为什么好像没起作用,没能在页面显示之前预读取所需图片。

简述一下我的用法,需要预读的图片有10张,我使用的是Dreamweaver 8.0提供的v3.0版本的代码,代码如下:

function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} }

自动生成的预读调用是在body的onload上,我将它改为.js文件,在head里调用,又编写了一个预读函数用window.onload调用,代码如下:

function doPreload(){ for (var index=0; index<10; index++){ url1 = path_prefix+'TN_'+index+path_ext; MM_preloadImages(url1);} }

window.onload = doPreload;

运行时并没有得到预期效果,Firefox正常,IE出错,于是我改回body调用,还是失败。我以为是函数和循环的问题,就改成MM_preloadImages(‘img1.gif’, ‘img2.gif’, …)的调用,结果还是不行。

参考了一下Google Group里的文章,说有可能是缓存图片容量太大,可是回头想想一共10张图片,每张3、4K,全读出来也就30、40K,现在的带宽肯定不成问题。

所以我现在很郁闷,不知道其他人是不是也遇到这种问题,欢迎大家来与我交流,同时希望Javascript高手可以不吝赐教,指点我一下。

UPDATE:多谢Reg提醒,让我找到了问题的方向,看样子不是MM_preloadImages预读的问题,而是调用时候的问题,上面的懒得改了,就在下面继续更新。

**UPDATE2:**看到一篇讲CSS在IE里面的重复渲染问题,说DIV的显隐会影响CSS重新渲染,我不知道做的那个菜单是不是这种情况。

Technorati : MM_preloadImages, javascript

22 May 2006, 16:07 UTC

昨日收集 - 不能照搬的用户体验

2006-5-22

Logo

21 May 2006, 16:09 UTC

昨日收集 - 扫描这本书:数字图书馆和搜索技术的版权困境

2006-5-21

Logo

20 May 2006, 16:03 UTC

昨日收集 - 关于战略

2006-5-20

Logo

19 May 2006, 17:39 UTC

昨日收集 - 拇指原则

2006-5-19

Logo

18 May 2006, 16:09 UTC

昨日收集 - 关于网站体验的思考

2006-5-18

Logo

17 May 2006, 16:30 UTC

昨日收集 - 关心用户体验就是关心商业

2006-5-17

Logo

17 May 2006, 15:30 UTC

慢讯 - Flickr进入Gamma

刚刚才知道Flickr脱离了Beta,正式进入Gamma阶段~

Flickr这个Web2.0的著名代表,它也在不断测试着,现在已经进入下一阶段,而不是永远Beta,莫非它要打破Web2.0的这个特性吗?

用了一下,感觉还不错,变动最大的就是下拉菜单了,看到到处都有菜单出来,头像、导航、窗口等等,几乎整个界面都变成面向对象的了。

Gamma的意义只在这里吗?Gamma之后是什么呢?

之后会不会有一堆网站要模仿Flickr去Gamma?

国内的Web2.0们,你们准备好升级了吗?

Technorati : Beta, Flickr, Gamma

16 May 2006, 16:02 UTC

昨日收集 - Web2.0的技术本质

2006-5-16

Logo