我即将在我公司的应用程序中启动一个相当重要的Ajax特性。我需要做的是每隔几分钟就让用户在页面上回调一次Ajax。
我想知道的是,是否有任何干净和简单的方法可以使JavaScript Ajax回调到ASP.NET页面,而无需在页面上回发其余的信息。如果可能的话,我不想这么做。
我真的只想在页面上调用一个方法,而不是其他方法。
另外,我只限于使用ASP.NET 2.0,所以我不能使用任何新的3.5FrameAPAJAX特性,尽管我可以为该框架使用AJAX扩展。
更新
我决定接受DanP的回答,因为这似乎正是我想要的。我们的站点已经在某些方面使用了jQuery,所以我可能会使用jQuery进行请求,因为在我的经验中,它的性能似乎比ASP的AJAX框架要好得多。
您认为向IHttpHandler传输数据的最佳方法是什么?我应该将变量添加到查询字符串中还是发布我需要发送的数据?
我认为我必须发送的唯一东西是一个ID,但我无法确定最好的方法是发送ID并让IHttpHandler处理它。我想出一个解决方案,防止一个有基本计算机技能的人不小心或有意直接访问页面或重复请求。这个是可能的吗?
发布于 2008-08-26 02:14:36
如果不想创建空白页,可以调用IHttpHandler (ashx)文件:
public class RSSHandler : IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "text/xml";
string sXml = BuildXMLString(); //not showing this function,
//but it creates the XML string
context.Response.Write( sXml );
}
public bool IsReusable
{
get { return true; }
}
}发布于 2008-08-26 02:36:41
您应该使用ASP.Net回调,这是在Asp.Net 2.0中引入的。这里有一篇文章应该让你做好准备:
在ASP.NET网页中以编程方式实现客户端回调而不回发
编辑:还请看这个:基于ICallback和JSON的JavaScript序列化
发布于 2008-08-26 03:21:00
您认为向IHttpHandler传输数据的最佳方法是什么?我应该将变量添加到查询字符串中还是发布我需要发送的数据?我认为我必须发送的唯一东西是一个ID,但我无法确定最好的方法是发送ID并让IHttpHandler处理它。我想出一个解决方案,防止一个有基本计算机技能的人不小心或故意直接访问页面。
考虑到回调隐藏在客户端代码中,需要具有相同决心的人才能获得查询字符串或POST请求。呃,如果他们有火虫,你也一样惨了。
因此,在这种情况下,做任何对您最简单的事情(提示:我只使用querystring)。
为了处理重复的请求/直接访问,我会生成一个键,它与每个请求一起发送。可能是当前时间的散列(模糊,我会下降到分钟,但不是秒,因为网络延迟)+客户端IP。
然后在HTTPHandler中,执行相同的散列,并且只在它们匹配的情况下运行。
https://stackoverflow.com/questions/27258
复制相似问题