以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据丢失问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178822)

--  作者:ycs5801
--  发布时间:2022/7/22 16:13:00
--  数据丢失问题

以下内容是专门发给有点蓝浏览



现在list3这个页面,偶尔会发生丢失数据问题,就是下边的某一行突然就变成了空,整行都是空,主要是没有规律,怎样找出这样的错误呢?

--  作者:有点蓝
--  发布时间:2022/7/22 16:42:00
--  
这种只能靠自己不停测试找出规律来。每个步骤都使用日志记录所有的操作,然后除问题的时候分析日志,看看代码都做了什么操作
--  作者:ycs5801
--  发布时间:2022/7/23 14:01:00
--  

function myfunction1(sureyidtimes){
  if(document.getElementById("tankno").value==\'\'){  //假如舱号为空,则传输srueyidtimes,生成表格
 show("toptip2",2000);
        return false;
  }else{                                           //假如舱号不为空,则代表已经进入编辑状态,将传输主键,并将下一次的值返回表单
   var key = table1.primarykey;
   var result=submitAjaxFileds("list3save.htm?key=" + table1.primarykey+"&sureyidtimes="+sureyidtimes,"","tankno","obvd", "correct", "tovcubmeter", "density",false)
     var obj = JSON.parse(result)
     if(obj.结束标志 ==\'结束\'){                     //如果返回的是结束字符,则显示到结尾提示。
       document.getElementById("p1").innerHTML=obj.压舱水表格
        bindTable();
      show("toptip1",2000);
        return false;
       }
      else{                                   //如果没有结束,则提取数据到表单,并生成表格
      
    document.getElementById("p1").innerHTML=obj.压舱水表格
    document.getElementById("tankno").value=obj.tankno
     document.getElementById("obvd").value =obj.obvd
    document.getElementById("correct").value =obj.correct
    document.getElementById("tovcubmeter").value =obj.tovcubmeter
    document.getElementById("density").value = obj.density
    bindTable(); //必须有此函数,见下,不然无法触控操
      table1.primarykey = obj.primarykey
    }
}
 }

 

有没有可能是这个js函数的问题,我觉得是多人操作,勾选了某行,得到key,保存了空值。


--  作者:有点蓝
--  发布时间:2022/7/23 14:28:00
--  
写日志跟踪一段时间,看看这里提交的是否有值。

或者判断一下,前端有数据提交再新增保存

--  作者:ycs5801
--  发布时间:2022/7/23 15:51:00
--  

If e.postvalues("tankno") = "" And e.postvalues("obvd") = "" And e.postvalues("correct") = "" And e.postvalues("tovcubmeter") = "" And e.postvalues("density") = "" Then
                MessageBox.Show("你发现了bug,记住你之前的操作")
                Return ""
            End If

 

黄色部分想换成alter方式在前端显示,需要怎么改?这样是不是可以发现bug?


--  作者:ycs5801
--  发布时间:2022/7/23 15:54:00
--  
在这地方加的
图片点击可在新窗口打开查看此主题相关图片如下:2022-07-05_183523.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2022/7/23 16:22:00
--  


--  作者:ycs5801
--  发布时间:2022/7/24 10:23:00
--  类似这种

if 某条件 then

前端提示信息(这个地方可以直接提示信息吗?利用alert)

end if

 

      .Add("c1","Button", "./images/button.png").Attribute = "oncl ick=\'javascript:alert(""你单击了我!"")\'"

类似这种。

[此贴子已经被作者于2022/7/24 10:23:12编辑过]

--  作者:有点蓝
--  发布时间:2022/7/24 20:00:00
--  
服务端的任何操作都要返回前端,才能执行。

方法1、前端直接判断就是7楼的用法
2、返回并刷新整个前端,比如MsgPage的用法,
http://www.foxtable.com/mobilehelp/topics/0058.htm

http://www.foxtable.com/mobilehelp/topics/0059.htm