htm页面无限刷新!!!!急急

wangzhi0321 2011-08-02 05:24:17
html代码如果:
<html>
<head>
<title></title>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
alert("对不起,您的浏览器不支持XMLHttpRequest对象!");
}
}
}
}
function getvalue(){
createXMLHttpRequest();
var url = "JsHandler.ashx";
xmlHttp.open("POST", url, true)
xmlHttp.onreadystatechange = repeatResult;
xmlHttp.send("");
return false;
}
function repeatResult() {

if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
document.write(xmlHttp.responseText);
}
}
}

</script>
</head>
<body onload="getvalue()" >
</body>
</html>
执行时页面无限刷新,JsHandler.ashx是操作数据库文件,我只想要他加载一次完成,不再刷新 怎么解决???
...全文
197 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangzhi0321 2011-08-03
  • 打赏
  • 举报
回复
谢谢各位的帮助,我的提问思路可能不清晰,没有让大家更的理解,问题找到了,stop_time变量中给值少一个单引号,时间不受控制,图片切换非常快,JsHandler.ashx文件只是从数据库中取数据,代码如下:
JsHandler.ashx
<%@ WebHandler Language="C#" Class="JsHandler" %>

using System;
using System.Web;
using System.Web.SessionState;
using Helper;
using System.Data;
using System.Data.SqlClient;
using System.Text;

public class JsHandler : IHttpHandler, IReadOnlySessionState{

public string []strimg =new string[5];
public string[] strurl = new string[5];
public string[] strtxt = new string[5];
public string str = "";
public int i=0;
public string[] imag = new string[5];
public string[] link = new string[5];
public string[] text = new string[5];
int pic_width = 300; //图片宽度
int pic_height = 222; //图片高度
int button_pos = 4; //按扭位置 1左 2右 3上 4下
int stop_time = 3000; //图片停留时间(1000为1秒钟)
int show_text = 0; //是否显示文字标签 1显示 0不显示
string txtcolor = "000000"; //文字色
string bgcolor = "DDDDDD"; //背景色
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
try
{
StringBuilder Json = new StringBuilder();
string sql = "select top 5 * from AdImage where [AdImageTypeID]='1' order by Sort desc";
SqlDataReader Imgdr = MySqlHelper.ExecuteReader(sql, CommandType.Text, false);
if (Imgdr.HasRows)
{
while (Imgdr.Read())
{

strimg[i]= Imgdr["AdImageAddr"].ToString();
strurl[i]= Imgdr["AdImageUrl"].ToString();
strtxt[i]= Imgdr["AdImageText"].ToString();
i++;
}
}



imag[0] = strimg[0];
link[0] = strurl[0];
text[0] = strtxt[0];
imag[1] = strimg[1];
link[1] = strurl[1];
text[1] = strtxt[1];
imag[2] = strimg[2];
link[2] = strurl[2];
text[2] = strtxt[2];
imag[3] = strimg[3];
link[3] = strurl[3];
text[3] = strtxt[3];
imag[4] = strimg[4];
link[4] = strurl[4];
text[4] = strtxt[4];
//可编辑内容结束
var swf_height = show_text == 1 ? pic_height + 20 : pic_height;
string pics = "";
string links = "";
string texts = "";
for (int i = 1; i < imag.Length; i++) {
pics = pics + ("|" + imag[i]);
links = links + ("|" + link[i]);
texts = texts + ("|" + text[i]);
}
pics = pics.ToString().Substring(1);
links = links.ToString().Substring(1);
texts = texts.ToString().Substring(1);
var a="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cabversion=6,0,0,0";
var b="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
var c = "application/x-shockwave-flash";
var d = "http://www.macromedia.com/go/getflashplayer";
str+="<object classid="+b+" codebase="+a+" width="+ pic_width + " height=" + swf_height + ">";
str+="<param name=movie value='flash/focus.swf'>')";
str+="<param name=quality value=high><param name=wmode value=opaque>";
str+="<param name=FlashVars value='pics=" + pics +"&links=" + links + "&texts=" + texts +"&pic_width=" + pic_width +"&pic_height=" + pic_height +"&show_text=" + show_text +"&txtcolor=" + txtcolor +"&bgcolor=" + bgcolor + "&button_pos=" + button_pos +"&stop_time=5000'>";
str+="<embed src=flash/focus.swf FlashVars='pics=" + pics + "&links=" + links + "&texts=" + texts +"&pic_width=" + pic_width +"&pic_height=" + pic_height +"&show_text=" + show_text +"&txtcolor=" + txtcolor +"&bgcolor=" + bgcolor +"&button_pos=" + button_pos +"&stop_time= 5000 ' quality='high' width=" + pic_width + " height=" + swf_height + " allowScriptAccess=sameDomain type="+c+" pluginspage="+d+" />";
str+="</object>";
Imgdr.Close();
context.Response.Write(str);
}
catch (Exception ex)
{
throw new Exception("出现错误"+ex);
}
}
public bool IsReusable
{
get
{
return false;
}
}

}
结贴给分
孟子E章 2011-08-02
  • 打赏
  • 举报
回复
有你这样问问题的吗?还有什么内容都贴出来
wangzhi0321 2011-08-02
  • 打赏
  • 举报
回复
直接用HTML页面做的话是没有问题,因为要动态显示,多了一步后台处理就产生图片切换时间非常的快,
躲奶 2011-08-02
  • 打赏
  • 举报
回复
直接把代码写在HTML里有效果吗,如果有的话可能是组装的时候出错了,无刷新那一块应该是没有什么问题的

---------------------------------------------------------------------
刚出炉的群,深圳C#程序员请加QQ群:77234575
wangzhi0321 2011-08-02
  • 打赏
  • 举报
回复
还有些条件没贴出来,如下:
<script>
arr = Array("images/01.jpg", "images/02.jpg", "images/03.jpg", "images/04.jpg", "images/05.jpg");
var pic_width = 300; //图片宽度
var pic_height = 222; //图片高度
var button_pos = 4; //按扭位置 1左 2右 3上 4下
var stop_time = 3000; //图片停留时间(1000为1秒钟)
var show_text = 1; //是否显示文字标签 1显示 0不显示
var txtcolor = "000000"; //文字色
var bgcolor = "DDDDDD"; //背景色
var imag = arr;
var link = new Array();
var text = new Array();
imag[1] = arr[1];
link[1] = "#";
text[1] = "safsdfsa";
imag[2] = arr[2];
link[2] = "#";
text[2] = "fsafsdfs";
imag[3] = arr[3];
link[3] = "#";
text[3] = "safsd";
imag[4] = arr[4];
link[4] = "#";
text[4] = "asfsd";
imag[5] = arr[5];
link[2] = "#";
text[5] = "safsd";
//可编辑内容结束
var swf_height = show_text == 1 ? pic_height + 20 : pic_height;
var pics = "", links = "", texts = "";
for (var i = 1; i < imag.length; i++) {
pics = pics + ("|" + imag[i]);
links = links + ("|" + link[i]);
texts = texts + ("|" + text[i]);
}
pics = pics.substring(1);
links = links.substring(1);
texts = texts.substring(1);
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cabversion=6,0,0,0" width="' + pic_width + '" height="' + swf_height + '">');
document.write('<param name="movie" value="flash/focus.swf">');
document.write('<param name="quality" value="high"><param name="wmode" value="opaque">');
document.write('<param name="FlashVars" value="pics=' + pics + '&links=' + links + '&texts=' + texts + '&pic_width=' + pic_width + '&pic_height=' + pic_height + '&show_text=' + show_text + '&txtcolor=' + txtcolor + '&bgcolor=' + bgcolor + '&button_pos=' + button_pos + '&stop_time=' + stop_time + '">');
document.write('<embed src="flash/focus.swf" FlashVars="pics=' + pics + '&links=' + links + '&texts=' + texts + '&pic_width=' + pic_width + '&pic_height=' + pic_height + '&show_text=' + show_text + '&txtcolor=' + txtcolor + '&bgcolor=' + bgcolor + '&button_pos=' + button_pos + '&stop_time=' + stop_time + '" quality="high" width="' + pic_width + '" height="' + swf_height + '" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
document.write('</object>');

</script>
图片轮换,我把JS代码全部扔到JsHandler文件处理,然后在htm文件显示从数据库中取出来的数据,但stop_time这个参数在后台不起作用,轮换图片非常之快,怎么解决??
躲奶 2011-08-02
  • 打赏
  • 举报
回复
你的问题在哪,是读不到数据?

---------------------------------------------------------------------
刚出炉的群,深圳C#程序员请加QQ群:77234575
gongsun 2011-08-02
  • 打赏
  • 举报
回复
在 global 中 加一个方法, 方法中用 timer 去循环执行你想要的操作比较好。
wangzhi0321 2011-08-02
  • 打赏
  • 举报
回复
刚才试过 net_lover的方法,还是一样
孟子E章 2011-08-02
  • 打赏
  • 举报
回复
document.write(xmlHttp.responseText);
改成

document.getElementById("x").innerHTML=xmlHttp.responseText


页面中加
<body onload="getvalue()" >

<div id=x></div>
</body>

62,074

社区成员

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

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

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

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