asp.net+jquery ajax

w199096zx 2013-02-18 03:54:06
才学习jquery的ajax,我现在在.net序列化出了一个xml文件,然后在jquery中准备解析这个xml文件显示到页面上,现在的问题就是我不知道怎么让jquery读取到这个xml,或者说是.net传递到jquery哪里去?初学,请高手指教!
jquery

$(function () {
timestamp = 0;
updateMsg();
$("#chatform").submit(function () {
$.post("chatroom.aspx", {
message: $("#msg").val(),
name: $("#author").val(),
action: "postmsg",
time: timestamp
}, function (xml) {
$("#msg").val("");
addMessages(xml);
});
return false;
});
function addMessages(xml) {
if ($("status", xml).text() == "2") return;
timestamp = $("time", xml).text();
$("message", xml).each(function () {
var author = $("author", this).text();
var content = $("text", this).text();
var htmlcode = "<strong>" + author + "</strong>:" + content + "<br/>";
$("#messagewindow").prepend(htmlcode);
});
};
function updateMsg() {
$.post("chatroom.aspx", { time: timestamp }, function (xml) {
$("#loading").remove();
addMessages(xml);
});
setTimeout('updateMsg()', 4000);
}
})

后台代码就是xml的序列化,这个就不发了吧!
...全文
590 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
ktei2008 2013-10-30
  • 打赏
  • 举报
回复
引用 32 楼 GlyphVectory 的回复:
[quote=引用 30 楼 ktei2008 的回复:] [quote=引用 27 楼 GlyphVectory 的回复:] 引用 12 楼 ktei2008 的回复:引用 4 楼 GlyphVectory 的回复: 我没有搞懂现在大家为什么用jqueryAjax,在asp.net中updatePanel就能完全的实现所有Ajax,简单问题复杂话。 还是不得不“喷”你,怕你误导大众。你先去研究一下UpdatePanel背后的机制再来大放厥词比较好。UpdatePanel有点伪AJAX的意……
又想了一下,我刚才的话太刻薄了。你可以看看这个链接: http://encosia.com/why-aspnet-ajax-updatepanels-are-dangerous/ 没有任何事是绝对的,我不觉得UpdatePanel完全是“废物”,但是它确实不是AJAX的初衷。 如果对我给的链接不满意,你可以自己去google,输入"is UpdatePanel really AJAX",然后回车。[/quote] 三年前我就用过这些东西,我要你教我?如果你能让我看见你自己一个做的东西,我觉得如果真的不错,我是希望你教的,但是我想一般不太可能。[/quote] whatever man... I don't care what you can do or not and I'm not responsible for teaching you no shit.
GlyphVectory 2013-10-28
  • 打赏
  • 举报
回复
引用 30 楼 ktei2008 的回复:
[quote=引用 27 楼 GlyphVectory 的回复:] 引用 12 楼 ktei2008 的回复:引用 4 楼 GlyphVectory 的回复: 我没有搞懂现在大家为什么用jqueryAjax,在asp.net中updatePanel就能完全的实现所有Ajax,简单问题复杂话。 还是不得不“喷”你,怕你误导大众。你先去研究一下UpdatePanel背后的机制再来大放厥词比较好。UpdatePanel有点伪AJAX的意……
又想了一下,我刚才的话太刻薄了。你可以看看这个链接: http://encosia.com/why-aspnet-ajax-updatepanels-are-dangerous/ 没有任何事是绝对的,我不觉得UpdatePanel完全是“废物”,但是它确实不是AJAX的初衷。 如果对我给的链接不满意,你可以自己去google,输入"is UpdatePanel really AJAX",然后回车。[/quote] 三年前我就用过这些东西,我要你教我?如果你能让我看见你自己一个做的东西,我觉得如果真的不错,我是希望你教的,但是我想一般不太可能。
NGAER 2013-10-24
  • 打赏
  • 举报
回复
引用 4 楼 GlyphVectory 的回复:
我没有搞懂现在大家为什么用jqueryAjax,在asp.net中updatePanel就能完全的实现所有Ajax,简单问题复杂话。
那updatePanel可以实现数据的异步处理吗?比如说:我输入一个用户名,就直接会验证用户名是否存在, (我是新手正好准备学习的AJAX的,一会看到JQuery ajax,一会又是asp.net ajax,我都看的糊涂了!)
ktei2008 2013-02-26
  • 打赏
  • 举报
回复
引用 27 楼 GlyphVectory 的回复:
引用 12 楼 ktei2008 的回复:引用 4 楼 GlyphVectory 的回复: 我没有搞懂现在大家为什么用jqueryAjax,在asp.net中updatePanel就能完全的实现所有Ajax,简单问题复杂话。 还是不得不“喷”你,怕你误导大众。你先去研究一下UpdatePanel背后的机制再来大放厥词比较好。UpdatePanel有点伪AJAX的意……
又想了一下,我刚才的话太刻薄了。你可以看看这个链接: http://encosia.com/why-aspnet-ajax-updatepanels-are-dangerous/ 没有任何事是绝对的,我不觉得UpdatePanel完全是“废物”,但是它确实不是AJAX的初衷。 如果对我给的链接不满意,你可以自己去google,输入"is UpdatePanel really AJAX",然后回车。
ktei2008 2013-02-26
  • 打赏
  • 举报
回复
引用 27 楼 GlyphVectory 的回复:
引用 12 楼 ktei2008 的回复:引用 4 楼 GlyphVectory 的回复: 我没有搞懂现在大家为什么用jqueryAjax,在asp.net中updatePanel就能完全的实现所有Ajax,简单问题复杂话。 还是不得不“喷”你,怕你误导大众。你先去研究一下UpdatePanel背后的机制再来大放厥词比较好。UpdatePanel有点伪AJAX的意……
你爱用就用,跟我没有什么关系其实。我又没说UpdatePanel不能用。
ktei2008 2013-02-26
  • 打赏
  • 举报
回复
引用 27 楼 GlyphVectory 的回复:
引用 12 楼 ktei2008 的回复:引用 4 楼 GlyphVectory 的回复: 我没有搞懂现在大家为什么用jqueryAjax,在asp.net中updatePanel就能完全的实现所有Ajax,简单问题复杂话。 还是不得不“喷”你,怕你误导大众。你先去研究一下UpdatePanel背后的机制再来大放厥词比较好。UpdatePanel有点伪AJAX的意……
没什么高见。感兴趣的话你自己去学。我没义务教你。
GlyphVectory 2013-02-24
  • 打赏
  • 举报
回复
引用 12 楼 ktei2008 的回复:
引用 4 楼 GlyphVectory 的回复: 我没有搞懂现在大家为什么用jqueryAjax,在asp.net中updatePanel就能完全的实现所有Ajax,简单问题复杂话。 还是不得不“喷”你,怕你误导大众。你先去研究一下UpdatePanel背后的机制再来大放厥词比较好。UpdatePanel有点伪AJAX的意味。从效果上看你看不出什么区别,可是你研究过每次UpdatePane……
你说该不该和你继续喷喷饭了,我想听听你的高见?请你详细的解释解释UpdatePanel。Thks。
菜牛 2013-02-20
  • 打赏
  • 举报
回复
那个string.Format格式化XML语句忘了占位符了 反正就那意思,输出XML用的。
菜牛 2013-02-20
  • 打赏
  • 举报
回复
先解决楼主问题吧:
        protected void Page_Load(object sender, EventArgs e)
        {
            string header = Request.Headers["X-Requested-With"];
            if (!string.IsNullOrEmpty(header) && header.ToLower().Equals("xmlhttprequest"))
            {
                Response.Clear();
                Response.Write(string.Format("<response><user></user><time></time></response>", Request["user"], DateTime.Now));
                Response.End();
            }
        }
w199096zx 2013-02-19
  • 打赏
  • 举报
回复
引用 9 楼 forever_code 的回复:
你的问题出在哪里? 1,你先确定你ajax请求到处理的函数上了. 2,ajax回调函数成功接收数据. 3,处理回调函数数据 ,至于什么json,xml 你都在处理. 4,你显示到你的控件上. 你自己断点不就什么都清楚了?
请看清我的问题,谢谢。我问的是如何让jquery获取到asp.net后台序列化出来的xml,我是通过asp.net连接数据库读取出来的数据,然后序列化成xml,然后让jquery读取到这个xml,显示在前台。至于什么xml,json我想都是一个道理对吧?我现在的问题是如何让jquery读取到这个XML或者是让asp.net传递过去?,现在我已经解决这个问题了 就是在后头response.writefile这个xml文件,但是我如果response出来这个xml,我整个页面就乱了。
zy_mter 2013-02-19
  • 打赏
  • 举报
回复
接着这个问题问。。我用.NET WEB FORM, updatepanel 我已经不用了, 基本上就是效果上一样而已,而且增加数据量, 多请求几下, 数据量 就能上M了。 但是 jquery Json 多余复杂的数据显示 如GRIDVIEW。 显得把事情反而搞复杂了。 所以 大家如何在web form里面使用ajax 对于复杂的数据显示? 求教
种草德鲁伊 2013-02-19
  • 打赏
  • 举报
回复
引用 10 楼 w199096zx 的回复:
请看清我的问题,谢谢。我问的是如何让jquery获取到asp.net后台序列化出来的xml,我是通过asp.net连接数据库读取出来的数据,然后序列化成xml,然后让jquery读取到这个xml,显示在前台。至于什么xml,json我想都是一个道理对吧?我现在的问题是如何让jquery读取到这个XML或者是让asp.net传递过去?,现在我已经解决这个问题了 就是在后头response.writefile这个xml文件,但是我如果response出来这个xml,我整个页面就乱了。
用更轻便的HttpHandler来处理请求,别用aspx json由javascript"读取"就方便多了,不然还得经过xmldom, xpath什么的
EEEEEERROR 2013-02-19
  • 打赏
  • 举报
回复
你的问题出在哪里? 1,你先确定你ajax请求到处理的函数上了. 2,ajax回调函数成功接收数据. 3,处理回调函数数据 ,至于什么json,xml 你都在处理. 4,你显示到你的控件上. 你自己断点不就什么都清楚了?
w199096zx 2013-02-19
  • 打赏
  • 举报
回复
各位大哥 可以帮我解决这个问题么?不要再讨论什么updatepanel和jquery ajax什么性能问题,也不要说现在流行json格式的处理。我觉得xml和json至少原理是一样的吧,我会一种,其他的自然会了
ktei2008 2013-02-19
  • 打赏
  • 举报
回复
引用 17 楼 qq546937127 的回复:
额,这个怎么说呢,,看了你的描述,只是感觉你对web交互的根本原理不太清楚,所以导致你会遇到这些疑惑,我以前也是学.net起家的,一开始就用.net来做web开发,一开始还好,跟着.net的框架来开发,用里面的控件,一般的web功能都能实现。但是自从开始接触了.net的ajax,updatepanel之后疑惑就开始一个接一个的出现了,反正是一头雾水,大概也遇到过你今天问的……
说的不错,很有逻辑。
ktei2008 2013-02-19
  • 打赏
  • 举报
回复
引用 14 楼 forever_code 的回复:
引用 12 楼 ktei2008 的回复:引用 4 楼 GlyphVectory 的回复:我没有搞懂现在大家为什么用jqueryAjax,在asp.net中updatePanel就能完全的实现所有Ajax,简单问题复杂话。 还是不得不“喷”你,怕你误导大众。你先去研究一下UpdatePanel背后的机制再来大放厥词比较好。UpdatePanel有点伪AJAX的意味。……
指教倒谈不上,我只是针对你说的那句“简单问题复杂化”——其实如果UpdatePanel能真的做到拖拽下控件就可以实现真正轻量级AJAX流程,那对ASP.NET程序员来讲确实是福音,但是现实却很残酷。我并不是说UpdatePanel不能用,但是大家之所以jQueryAjax是因为UpdatePanel还是太“重”了,所以是不得已而为之,并不是简单问题复杂化。
net_grope 2013-02-19
  • 打赏
  • 举报
回复
需要建一个一般处理程序,也就是.ashx文件来处理你的数据就好了
net_grope 2013-02-19
  • 打赏
  • 举报
回复
$.post("chatroom.aspx", { message: $("#msg").val(), name: $("#author").val(), action: "postmsg", time: timestamp }, function (xml) { $("#msg").val(""); addMessages(xml); }); 你把这个研究下吧,后面那个function就是接受数据的,我给你弄个写的少的 $.post("处理数据的页面", { "参数1": 值1,"参数2":值2, "参数3": 值3 }, function (data, status) { }); 在ashx里面response.write("str"),str是你要发送的数据, 这里的 function (data, status) { }); data是你接收的数据,后面的status是状态码
w199096zx 2013-02-19
  • 打赏
  • 举报
回复
引用 17 楼 qq546937127 的回复:
额,这个怎么说呢,,看了你的描述,只是感觉你对web交互的根本原理不太清楚,所以导致你会遇到这些疑惑,我以前也是学.net起家的,一开始就用.net来做web开发,一开始还好,跟着.net的框架来开发,用里面的控件,一般的web功能都能实现。但是自从开始接触了.net的ajax,updatepanel之后疑惑就开始一个接一个的出现了,反正是一头雾水,大概也遇到过你今天问的……
非常感谢,说的有点道理我对web交互和生命周期的确没有很好的理解,刚刚我也的却发现web form用jquery ajax不怎么可取,继续学习吧!努力
qq546937127 2013-02-19
  • 打赏
  • 举报
回复
额,这个怎么说呢,,看了你的描述,只是感觉你对web交互的根本原理不太清楚,所以导致你会遇到这些疑惑,我以前也是学.net起家的,一开始就用.net来做web开发,一开始还好,跟着.net的框架来开发,用里面的控件,一般的web功能都能实现。但是自从开始接触了.net的ajax,updatepanel之后疑惑就开始一个接一个的出现了,反正是一头雾水,大概也遇到过你今天问的这种问题。 其实web交互是很简单的一个东西,就是客户端向服务器端发起http请求,然后服务器返回一段字符串或者说是一大段字符串,这些字符串被我们的浏览器解析之后就变成了一个可视化的网页,(当然其实网络传输的时候也不是传的字符串哈,是传的二进制文件,这个就先不深究了哈,不然说不完)。 但是.net的web开发为了降低程序的开发成本,所以他把.net下的web开发封装成了一个类似于.net桌面程序开发的东西,被称为web form,而你现在就是在web form 下面就行的开发学习。web form对于初学的程序员来说,用起来很简单,很容易上手,但是却让初学者看不清web开发的本质,让我们误入歧途。 在来说.net的ajax,这个东西就更坑爹了,因为.net的ajax是在web form的基础上做出来的,所以他的ajax交互也是封装了很多数据的,总而言之,.net下把web开发弄的很复杂了,遮住了原有的本质,建议先去完全弄懂web交互的原理。 上面你做的这个东西的话,在web form上面用jquery ajax其实是不可取的。但是如果非要做的话,一种正确的作法,你是应该再建一个获取xml数据的页面,但是这个页面应该使用后缀名为ashx的页面,ashx页面就是简单的web请求页面,免去了aspx页面的web from 的生命周期,效率更高,大概就说到这里吧,哦,对了,还有,你也应该去看看asp.net的生命周期 http://www.cnblogs.com/huangwj21/archive/2010/11/06/1870682.html
加载更多回复(12)

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧