左右间

行走在左右之间

博客园 首页 新随笔 联系 订阅 管理
  45 Posts :: 1 Stories :: 28 Comments :: 1 Trackbacks
最近发现,老的员工信息显示页面效率极低,研究发现,原来是显示员工照片的问题。后台会在显示页面之前逐一检查员工照片是否存在。代码为:
 1WebRequest req = HttpWebRequest.Create(img_src);
 2req.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["AdminUser"], ConfigurationManager.AppSettings["AdminPass"], ConfigurationManager.AppSettings["AdminDomain"]);
 3HtmlImage img = (HtmlImage)e.Item.FindControl("imgPhoto");
 4if (img != null
 5{
 6    try 
 7    {
 8             req.GetResponse();//如果不存在,就会报异常。
 9         img.Src = img_src;
10        }
 
11    catch (Exception ex) 
12    {
13            img.Src = ConfigurationManager.AppSettings["Ubi1Url"+                 "PeopleImages/.jpg?t=" + DateTime.Now.Ticks;
14     }

15}

这段代码消耗很大。其实最开始图片是不显示的,只有在鼠标放上去时才显示。所以最后决定将其移出,放入一个WebService中。
 1[WebMethod]
 2 public string ValidImageLocation(string img_src)
 3    {
 4        WebRequest req = HttpWebRequest.Create(img_src);
 5        req.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["AdminUser"], ConfigurationManager.AppSettings["AdminPass"], ConfigurationManager.AppSettings["AdminDomain"]);
 6        
 7        try
 8        {
 9            req.GetResponse();
10            return img_src;
11        }

12        catch (Exception ex)
13        {
14            return ConfigurationManager.AppSettings["Ubi1Url"+ "PeopleImages/.jpg?t=" + DateTime.Now.Ticks;
15        }

16    }

传进来的是我们要用的地址。先判断它是否存在,存在的话原样返回,否则返回备用的地址。注意使用[ScriptService]

在客户端添加如下代码:

 1function ShowPicture(el)//鼠标放上去时触发
 2{
 3    tem = el;
 4    var img = "";
 5    var parent = el.parentNode;
 6    var imgs = parent.getElementsByTagName("img");
 7    if(imgs.length>0)
 8    {
 9        img = imgs[0];
10        ImageService.ValidImageLocation(img.src,Finished);//调用WebService方法,得到可用的地址。
11        img.style.display = "";
12    }

13}

14    
15function Finished(infor)
16{
17    var img = "";
18    var parent = tem.parentNode;
19    var imgs = parent.getElementsByTagName("img");
20    if(imgs.length>0)
21    {
22        img = imgs[0];
23        img.src = infor;
24    }

25}
注意在ScriptManager中添加对WebService的引用。
posted on 2007-11-21 15:50 左右间 阅读(469) 评论(1)  编辑 收藏 所属分类: ASP.NET\ AJAX

Feedback

#1楼  2007-11-23 04:36 Vincent Yang      
没有说明要加Script Proxy,这种就算是写了别人都不会用,幸亏最近看了一下ajax里面的这种用法,否则都不懂你说的是什么
  回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: