读书人

jquery中间的ajax自动添加数据为何有时

发布时间: 2012-12-23 11:28:15 作者: rapoo

jquery当中的ajax自动添加数据为何有时会重复?
本帖最后由 dingzongyinnihao 于 2012-07-26 15:36:54 编辑 index.aspx

js代码



<script language="JavaScript" type="text/javascript">
var time=60;//时间,每1分钟执行一遍
var id=5;//id,从数据库获取的

function gettime(ctime)
{
var nS=ctime;

if (nS==50)
{

$.ajax({
type: "get",
url: "addsome.aspx",
dataType: "html",
data: "id=" + id,
sucess: function () {
return true;
},
error:function()
{
return false;
}
})

}



setTimeout("GetRTime("+nS+")",1000);

}

gettime(time);

</script>

html 绑定一些数据




addsome.aspx


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//用户高级竞猜模式设置
if (Request.QueryString["id"] != null)
{
int newid =Convert.ToInt32(Request.QueryString["id"].ToString());
AddsomethinByID(newid );
}


}
}


问题:断点调试的时候,运行到addsome.aspx页面, AddsomethinByID(newid )这个方法有时候会执行两遍或者三遍

请问是什么原因,,我就是到50秒的时候,插入一条数据,而有的时候在同一时间插入了1条以上数据,,我真不知道啥原因

,,,各位高手帮忙看下啊,,,,


[最优解释]
按照你的意思和代码你想做的应该是:你设定定时器为1s 执行一次 当达到50秒的访问后台方法

出现你所描述的情况 应该你还是没处理好 就如1楼所说的那样 小间隔多次访问 可能造成了堵塞等情况.

[其他解释]
gettime这个方法调了很多次吧

估计是因为异步执行导致你判断条件出错的问题
[其他解释]
GetRTime()这里面是咋样的?
[其他解释]
是1秒执行一次
这里面的 setTimeout("GetRTime("+nS+")",1000);  

GetRTime就是gettime,


当时间为第50秒的时候,就会自动执行addsome.aspx这个页面,这个是正确的,,,当过个几十分钟或者几个小时候,有那么几次会在addsome.aspx的添加方法重复执行

也就是, 1. int newid =Convert.ToInt32(Request.QueryString["id"].ToString());
2. AddsomethinByID(newid );

这里面的两句话,断点调试的时候,走两遍,而这两遍不是走一遍在走一遍,而是,第一句走一遍在走一遍,然后走第二句的第一遍,然后再走一遍的意思!

请问,到底怎么解决这个问题????求大神啊!



[其他解释]
该回复于2012-07-28 09:40:37被版主删除
[其他解释]
没人吗。。。。

读书人网 >.NET Framework

热点推荐