首页 新闻 会员 周边 捐助

同时发两个ajax异步传输数据,然后四五个人同时点击一个页面,结果返回的数据混乱

0
悬赏园豆:80 [已关闭问题] 关闭于 2014-07-05 01:58

同时发两个ajax异步传输数据,然后四五个人同时点击一个页面,结果返回的数据混乱,谁的都能获取到,并出现undefined情况,大家有没有遇到这种情况的,     用的getjson       求帮助。。。。。。在线等

api.ashx?keyword=保存的加密sql语句 &otherstr=这个是特殊条件(一般如:userid=123)

表a表b保存的是公共信息类似新闻,谁都可以读取。

A人 请求表a返回json
B人 请求表b返回json

一开始都正常,刷新刷新着,结果B得到的是A的json  A得到的可能是A也可能得到的是CDEF等人的。

 

关键代码如下:
Request.QueryString["keyword"]      url实际为加密sql语句   
Json = Get_Json(keyword);   获取json方法   日志打印的sql语句也是这个keyword,这个keyword在底层肯定并发情况下被替换了,但是找不到原因。

 public string Get_Json(string sql10)  
        {
            DataTable dt = new DataTable();
            dt = DataLink.GetList(sql10);  怀疑过这个dt对象
            string Json = GetJson.ToJson(dt);  tojson这个方法应该没问题只是转换字符
            return Json;
  } 


 public static DataTable GetList(string sqlstr)
        {
            try
            {
                ConnOpen("sqlconn");
               SqlCommand cmd=new SqlCommand();  怀疑过这个cmd  原来没new现在new了
                cmd = sqlconn.CreateCommand();
                cmd.CommandText = sqlstr;
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
*************只写了关键的部分
}
}
 
基本上就是以上代码,以前真没有考虑过这个并发现象,没想到那么严重,希望大家多多指点

序之家的主页 序之家 | 初学一级 | 园豆:128
提问于:2014-07-02 18:08
< >
分享
所有回答(10)
0

userid=123,这里的userid是怎么得到的?

刘宏玺 | 园豆:14020 (专家六级) | 2014-07-02 20:20
0

就题目来看,看不出来会有并发问题

吴瑞祥 | 园豆:29449 (高人七级) | 2014-07-02 20:49
0

每次查询的时候,连接对象关闭了吗

情义之印 | 园豆:15 (初学一级) | 2014-07-03 10:31
0

有可能是Js的错误,我有时候也会碰到,有的时候甚至不会发送请求,你仔细检查一下Js请求代码,或者把Js代码处理一下发出来看看。

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-03 10:53

出现undefined,有可能是ajax之间的调用有问题,看一下Js的调用顺序有没有问题。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-10 11:34
0

监视下每次的SQL语句呢,还有是不是用了什么静态变量保存数据?

幻天芒 | 园豆:37207 (高人七级) | 2014-07-03 11:36
0

今天早上买包子,人太多,老板找钱都找错人了

hobotree | 园豆:206 (菜鸟二级) | 2014-07-03 12:10
0

把每次请求的sql语句都打印出来对比下就知道了

copyCoder | 园豆:152 (初学一级) | 2014-07-03 16:58
0

在URL参数后面加个时间戳呢?

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-07-03 19:11
0

主要检查 Static

孑孓子 | 园豆:226 (菜鸟二级) | 2014-07-04 15:46
0

不得不感叹下,代码写的太糟糕了,居然传递Sql语句,以为加密了就没事拉? 用什么加密的?JS?JS是可以被下载到客户端的,加密算法是可以被看到的....

方法与参数命名也非常槽糕,没法看

1、Get_Json(keyword);   方法里面返回的是不是static变量?

2、static DataTable GetList()  方法里面的DataTable是new出来的么?还是static变量...

 

擦,楼主......在没有深入了解static的情况下不要随便乱用static,static表示什么?表示所有的用户通过Web来访问的都是同一个变量,多个用户来访问,也都是访问的同一个变量,能不出问题么

 

小 雷 | 园豆:314 (菜鸟二级) | 2014-07-04 18:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册