这是我在做异步更新的时候遇到的问题,平台是VS2008 - ASP.NET,下面代码是ajax异步更新的主要部分,代码我先稍加说明:
<div id="pop_inner">这个div是显示数据的地方,在发送过程中加载loading图片;
<div class="sub"> 这个div是个马甲,用来装饰上面的div,并且通过控制这个div的显隐达到二级菜单的目的。
一下是代码:$("#pop_inner").ajaxSend(function(){
$(this).html(" <img src='images/loading.gif' style='margin-left:20px;' />");
return;
})
function show(){
var submenu = $(".sub");
submenu.css({
'top':((_Br=="msie")||(_Ver==6))? this.offsetTop+150:this.offsetTop,
'left':((_Br=="msie")||(_Ver==6))? $(".links").width()-15:$(".links").width(),
'display':'block'
});
$.get("handlexcute/allservices.ashx?para="+encodeURIComponent("getsubservice_房产"),function(data){
$("#pop_inner").html(data);
})
}
$(".links .body ul li a").each(function(){
this.onmouseover=show
})
我遇到的问题很是奇怪,整个工程我放在VS平台上直接按F5运行,很正常,但是放在IIS里,通过浏览器访问就出问题了,那个叫“pop_inner”的div里的图片一直不消失。由于在VS上运行是正常的,所以我不能确定问题出在哪儿,请各位帮忙看看……
<div id="pop_inner">这个div是显示数据的地方,在发送过程中加载loading图片;
<div class="sub"> 这个div是个马甲,用来装饰上面的div,并且通过控制这个div的显隐达到二级菜单的目的。
一下是代码:$("#pop_inner").ajaxSend(function(){
$(this).html(" <img src='images/loading.gif' style='margin-left:20px;' />");
return;
})
function show(){
var submenu = $(".sub");
submenu.css({
'top':((_Br=="msie")||(_Ver==6))? this.offsetTop+150:this.offsetTop,
'left':((_Br=="msie")||(_Ver==6))? $(".links").width()-15:$(".links").width(),
'display':'block'
});
$.get("handlexcute/allservices.ashx?para="+encodeURIComponent("getsubservice_房产"),function(data){
$("#pop_inner").html(data);
})
}
$(".links .body ul li a").each(function(){
this.onmouseover=show
})
我遇到的问题很是奇怪,整个工程我放在VS平台上直接按F5运行,很正常,但是放在IIS里,通过浏览器访问就出问题了,那个叫“pop_inner”的div里的图片一直不消失。由于在VS上运行是正常的,所以我不能确定问题出在哪儿,请各位帮忙看看……
在VS中F5运行,系统会自动提供给你一个配置好的环境,文件路径自然没有问题。
如果JS运行正确,说明代码就确实没有问题。
而放在IIS下,你的问题是图片不消失,从你的代码看应该是没有得到回调,所以回调代码未能正常运行,你在回调函数里面放个alert实验一下,应该是没有一起运行的。
如果能确认这一点,你就要检查一下你的JS代码访问的后台的路径了。而且也要确认一下后台代码是否正常运行。
$("#pop_inner").html(data);
})alert("")加在它前后都能有提醒,但加这之间就没有用。路径也没错啊,可以确认的是后台没又运行,因为后台的处理函数,只要处理就有数据输出的,后台代码我也贴一下:
///////////////////////////using System;
using System.Web;
using DataAccess;public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
//System.Text.StringBuilder = new System.Text.StringBuilder();
string[] key_value = context.Request.QueryString["para"].ToString().Split('_');
switch (key_value[0])
{
case "getsubservice": DbHelper db = new DbHelper();
db.AddParameter("@name", key_value[1]);
System.Data.Common.DbDataReader dr = db.ExecuteReader("GetSubNamesByName",System.Data.CommandType.StoredProcedure);
if (dr.HasRows)
{
context.Response.Write("<ul>");
while (dr.Read())
{
context.Response.Write("<li><a href='javascript:return false'>" + dr["name"].ToString() + "</a></li>");
}
context.Response.Write("</ul>"); }
break;
default:
context.Response.Write("没有数据");
break;
}
}
public bool IsReusable {
get {
return true;
}
}}这种怪事……