请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 6391|回复: 5

[.net] 关于ashx [复制链接]

99love 楼主

自行车

金牌会员 手机认证 

帖子
1141
体力
3589
威望
8
居住地
四川省 成都市
发表于 2007-3-23 17:56:56 |显示全部楼层
通常我们要从数据库中读取图片
大家会想到http handler,也就是Ashx文件
对图片来说会很适用
因为有这样的标签
  1. <img src="myHttpHander.ashx?id=123" width="20" height="20" />
复制代码

在myHttpHander.ashx中,我们可以用context.Response.BinaryWrite来输出图片内容
但是如果对外输出文字
就像context.Response.Write("1234");
那么怎么在页面上引用这个1234?

不知道我讲清楚没有?
如果http handler输出的是图片的话可以用<img>标签来输出
但是它如果是文字又怎么来输出呢?
西部数码顶级域名注册商39元抢注!
帖子
2236
体力
7627
威望
19
发表于 2007-3-24 00:01:02 |显示全部楼层
那就不用这个了~~~~用WebService吧~~~~再JS去取~~~
知乎正在招聘前端/python/ 搜索工程师,欢迎加入~~~~~
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

warran 

天才的一周

钻石会员

帖子
5105
体力
11885
威望
13
发表于 2007-3-24 05:49:19 |显示全部楼层
输出文字的话,就等于是输出一个页面
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");

就相当于一个仅仅写着 Hello World 的  .txt  .js .css  .htm  .aspx ..... 任意一种文本文件

所以,可以把它当成文本文件去对待.

比如
Hander.ashx
如下

 提示:您可以先修改部分代码再运行



t.aspx如下:

 提示:您可以先修改部分代码再运行



效果是弹出alert

你也可以把.ashx当成css文件,然后
<link href="css/Handler.ashx" rel="stylesheet" type="text/css">

或者xml文件

orderDoc.load("Handler.ashx");

:D

甚至是 aspx文件.....

[ 本帖最后由 warran 于 2007-3-24 05:54 编辑 ]

使用道具 举报

99love 楼主

自行车

金牌会员 手机认证 

帖子
1141
体力
3589
威望
8
居住地
四川省 成都市
发表于 2007-3-30 09:03:38 |显示全部楼层
非常感谢warran,不过弹出个alert固然可行
如果我不想输出alert('hi')而是想输出hi到页面(在页面上显示hi)
那么就只会什么也没有了
还是用web services,martin0728 的好建议。

使用道具 举报

warran 

天才的一周

钻石会员

帖子
5105
体力
11885
威望
13
发表于 2007-3-30 21:15:15 |显示全部楼层
context.Response.ContentType = "text/plain";
既然已经定义了输出的属性,那么就可以把其当成是个文本文件.

如果要在页面显示的话,可以include

使用道具 举报

帖子
2236
体力
7627
威望
19
发表于 2007-3-31 10:12:27 |显示全部楼层
  1. <%@ WebHandler Language="C#" Class="TestHandler" %>

  2. using System;
  3. using System.Web;

  4. public class TestHandler : IHttpHandler {
  5.    
  6.     public void ProcessRequest (HttpContext context) {
  7.         context.Response.ContentType = "text/plain";
  8.         context.Response.Write("document.write(\"Hello World\");");
  9.     }

  10.     public bool IsReusable {
  11.         get {
  12.             return false;
  13.         }
  14.     }

  15. }
复制代码


前台页:

  1. <script type="text/javascript" src="TestHandler.ashx" />
复制代码


但是这种没有使用WebService好,原因是它可能延长加载时间
我们在context.Response.ContentType= "text/plain";这里再加上一句测试:
System.Threading.Thread.Sleep(8000);
再打开页面时可以感觉到明显的延迟

[ 本帖最后由 martin0728 于 2007-3-31 10:15 编辑 ]
知乎正在招聘前端/python/ 搜索工程师,欢迎加入~~~~~

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-13 09:55 , Processed in 0.079461 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部