asp.net+jquery ajax
才学习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);
}
})
既是这里.肯定会接收到值的.你先alert下看看 ,确定收到没有.收到了 ,就随便你怎么搞了
[解决办法]
额,这个怎么说呢,,看了你的描述,只是感觉你对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