我正做一项目,要求每隔30秒读取库里的信息将信息以图片的格式显示在showimage_area.aspx页面上,同时同步更改图片的热点(热点也是根据库生成的)。
我现在的做法是,makeimage_area.aspx页面生成图片
imageShow.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);//这是输出图片的代码
在showimage_area.aspx页面上用ajax每隔30秒更新重新载入map.ascx页面的内容
map_area.ascx页面的后代码改写map_area.ascx页面输出<IMG>和热点:
<IMG id='makeimage' src='control/MakeImage_area.aspx?Area=XM' useMap='#Map' border='0'>
<map name=Map>
<area shape=circle coords=81.95804,309.9681,8 alt=Without:ASM href=#>
<area shape=circle coords=303.0915,306.0359,8 alt=Without:ASM,NEP href=#>
……
</map>MakeImage_area.aspx?Area=XM里面的Area=XM是判断地区,根据这个参数输出不同的地区的图片和热点。问题:
1、每次刷新后图片是新生成的图片,但是起作用的热点是上一次生成的热点(虽然map_area.ascx中的热点和图片都是新生成的);
2、我在各个页面都加了清除缓存的代码,但是当我根据Area=XM生成图片和热点后再根据Area=AM生成图片和热点时,第一次显示的却还是根据Area=XM生成图片和热点,重新调用一次map_area.ascx页面后才显示根据Area=AM生成图片和热点。
我在aspx和.cs页面都加过不用缓存的代码
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">Response.Buffer=true;
Response.ExpiresAbsolute=System.DateTime.Now.AddSeconds(-1);
Response.Expires=0;
Response.CacheControl="no-cache";

解决方案 »

  1.   

    或者谁有更好的解决方案,可以来这个帖子,100分送上
    http://community.csdn.net/Expert/topic/4565/4565672.xml?temp=.1876337
      

  2.   

    这个图片是一张地图,每次动态在上面打点,点有两种状态,标示每一个地方工作完成的情况,有哪些工作没有完成鼠标经过时用热点的alt属性表示出来。
    30秒刷新是为了模拟表现实时的状态。
      

  3.   

    用Ajax无刷新的技术不好吗?总是不停刷新的话,用户很烦的。网络不好时尤甚。