.NET AJAX用JQ GET方法无刷新回传问题

xxx271941241 2015-07-23 09:26:31
前端:
$.get("data.ashx", { "param": value }, function (responseText, textStatus, XMLHttpRequest) {
$("#msg").html(responseText);
---------------------
后台方法
public class data: IHttpHandler, IRequiresSessionState
{

public void ProcessRequest(HttpContext context)
{
for (int j =1; j <= row; j++)
{
context.Response.Write("<div class='warning_box'>+j+"/"+row+"</span><img src='images/load.gif'/></div>");
}
}
}

程序设计无误,为何不循环输出
div class='warning_box'>+1+"/"+100+"</span><img src='images/load.gif'/></div>
div class='warning_box'>+2+"/"+100+"</span><img src='images/load.gif'/></div>
div class='warning_box'>+3+"/"+100+"</span><img src='images/load.gif'/></div>
div class='warning_box'>+4+"/"+100+"</span><img src='images/load.gif'/></div>
..............
.............
.............
div class='warning_box'>+98+"/"+100+"</span><img src='images/load.gif'/></div>
div class='warning_box'>+99+"/"+100+"</span><img src='images/load.gif'/></div>
div class='warning_box'>+100+"/"+100+"</span><img src='images/load.gif'/></div>

最终输出的只是最后一条 100/100 . 有什么办法可以实现这个回传吗?
...全文
204 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxx271941241 2015-07-24
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
另外要说一下,你这种写法基本上是从你的asp.net的习惯出发的。 实际上富客户端的程序(大量javascript代码,并且有着成熟的前端框架作为模板的解析器)不是这样的,它从ajax得到的结果是类似
[
{
    n: 1,
    s:100,
    src="......."
},
{
    n: 2,
    s:100,
    src="......."
},
{
    n: 3,
    s:100,
    src="......."
}
]
这类数据,然后前端的显式是前端的事情,不是asp.net程序能管的了的(因为前端又很复杂的事情要做,例如要依据这个数据来注入丰富的模板中,注册许多事件,等等,绝非是从asp.net获得简单的html。)
知识有限,, 用asp.net可以实现像我上面说的功能吗
xxx271941241 2015-07-24
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
1. 你应该使用任何一种 http 调试器来开发。而不是被动地只知道看“结果”。 2. 如果你担心输出的东西是不是“一个整体”,那么你可以把要输出的内容写到一个string变量,然后一次性地输出。而不是那样。
调试可以正确看到输出的1.2.3...100的每一步,但是最终回传给前端的只是最后一步的代码。 +=到一个STRING变量也可以看到所有代码正确附加 我这样写主要是为了看到程序代码执行进度的百分比。
  • 打赏
  • 举报
回复
进度条要用侦听,每隔1秒或者多少毫秒提交一次AJAX请求来查询进度。比如上传之前,先把文件大小(假设100MB)保存在服务器上的某个Session或者变量里,上传的临时文件大小(假设某次提交侦听请求时,已经上传了5MB),两个数值一除,5%就出来了。
  • 打赏
  • 举报
回复
引用 5 楼 xxx271941241 的回复:
调试可以正确看到输出的1.2.3...100的每一步,但是最终回传给前端的只是最后一步的代码。 +=到一个STRING变量也可以看到所有代码正确附加 我这样写主要是为了看到程序代码执行进度的百分比。
你这里所说的调试,不是我所说的 http 调试器调试,所以我只能表示“遗憾”。 当你“+=到一个STRING变量”时,你还是要“看到所有代码正确附加”吗?你还是不去调试 http 消息啊。这让我怎么说好呢? 这就好比如说,有人说“救灾物资没有发到受灾人手中”,而你一遍遍重复说你在仓库里点过数据了,这就是岗位上出了问题了。
骑猪看海 2015-07-24
  • 打赏
  • 举报
回复
可以用JQ的列队去实现,其实也就是等待发出多次http请求
  • 打赏
  • 举报
回复
另外要说一下,你这种写法基本上是从你的asp.net的习惯出发的。 实际上富客户端的程序(大量javascript代码,并且有着成熟的前端框架作为模板的解析器)不是这样的,它从ajax得到的结果是类似
[
{
    n: 1,
    s:100,
    src="......."
},
{
    n: 2,
    s:100,
    src="......."
},
{
    n: 3,
    s:100,
    src="......."
}
]
这类数据,然后前端的显式是前端的事情,不是asp.net程序能管的了的(因为前端又很复杂的事情要做,例如要依据这个数据来注入丰富的模板中,注册许多事件,等等,绝非是从asp.net获得简单的html。)
  • 打赏
  • 举报
回复
这种事情多做几种Response.Write的测试不就知道问题了……
  • 打赏
  • 举报
回复
1. 你应该使用任何一种 http 调试器来开发。而不是被动地只知道看“结果”。 2. 如果你担心输出的东西是不是“一个整体”,那么你可以把要输出的内容写到一个string变量,然后一次性地输出。而不是那样。
xxx271941241 2015-07-23
  • 打赏
  • 举报
回复
这个data还有其它操作 有点耗时的 没有一瞬间说法,我只是没给出所有代码

62,074

社区成员

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

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

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

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