以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]在老手机上(比如华为c8816 三星gt-i8268),按上一页一下时,相当于按了两下  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100099)

--  作者:ytzn
--  发布时间:2017/5/4 18:17:00
--  [求助]在老手机上(比如华为c8816 三星gt-i8268),按上一页一下时,相当于按了两下

HttpRequest内容:

 

Dim fl As String = "d:\\web\\" & e.path

If filesys.FileExists(fl)

    Dim idx As Integer = fl.LastIndexOf(".")

    Dim ext As String  = fl.SubString(idx)

    Select Case ext

        Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".zip",".rar"

            \'e.Resp

            e.WriteFile(fl)

            Return \'这里必须返回

    End Select

End If

Select Case e.Path

    Case "xs_list.htm",""

        

        \'获取要显示的页

        Dim page As Integer = 0 \'默认page0,显示第一页

        Dim pageRows As Integer = 10 \'每页10

        If e.GetValues.ContainsKey("page") Then  \'如果地址中有page参数

            Integer.TryParse(e.GetValues("page"), page) \'提取page参数

        End If

        Dim StartRow As Integer = page * pageRows + 1 \'此页第一行

        Dim EndRow As Integer = (page + 1) * pageRows \'此页最后一行

        

        \'记录当前页

        Dim dr As DataRow = DataTables("页面信息").addnew()

        dr("时间")=Date.now

        dr("页面信息")=">" & page

        dr.save

        

        \'获取该页数据

        Dim cmd As New SQLCommand

        cmd.C

        cmd.CommandText = "Select Count(*) Fro m {销售订单wx} where 创建时间>= \'2017-01-01\'"

        Dim Count As Integer = cmd.ExecuteScalar() \'获取总的行数

        Dim Pages As Integer = Math.Ceiling(Count/PageRows) \'计算出总页数

        

        cmd.CommandText = "Select * Fro m (Select Row_Number() Over(Order by 创建时间 desc) As RowNum,创建时间,车牌号 Fro m 销售订单wx where 创建时间>= \'2017-01-01\') As a"

        cmd.CommandText = cmd.CommandText & "  Where RowNum >= " & StartRow & " And RowNum <= " & EndRow

        Dim dt As DataTable = cmd.ExecuteReader  \'根据此页数据生成表格

        

        Dim wb As New WeUI

        With wb.AddTable("","Table1")

            .PageNumber = page \'设置页码

            .CreateFro mDataTable(dt, False,"","","创建时间","车牌号")

        End With

        

        \'生成换页按钮

        With wb.AddButtonGroup("","btg1", False)

            If page > 0 Then

                .Add("btnPrev", "上一页","","xs_List.htm?page=" & page - 1)

            Else

                .Add("btnPrev", "上一页").Kind = 1

            End If

            If Endrow < count Then

                .Add("btnNext", "下一页","","xs_List.htm?page=" & page + 1)

            Else

                .Add("btnNext", "下一页").Kind = 1

            End If

        End With

        e.WriteString(wb.Build)

End Select

 

在老手机上(比如华为c8816  三星gt-i8268), 当按"下一页"时正常,但按"上一页"时,出现问题,按一下页面信息表增加两条记录,有时不止两条。见下面连接视频:

https://pan.baidu.com/s/1c19epFi 

 

请问老师是程序问题还是老手机不能用?


--  作者:有点色
--  发布时间:2017/5/4 18:46:00
--  

 我测试你的代码没问题。你其它设备正常?

 

 和手机无关的,你手机安装另一个浏览器就好了,比如 UC、QQ、百度 这些


--  作者:ytzn
--  发布时间:2017/5/4 18:52:00
--  
其他手机没发现问题,碎屏手机及上述俩手机出现问题,在qq浏览器上及微信公众号(可能是连接到微信浏览器)上测试的

[此贴子已经被作者于2017/5/4 18:54:40编辑过]

--  作者:ytzn
--  发布时间:2017/5/4 19:06:00
--  
又试了下其他浏览器,比如手机自带的浏览器,没出现这个情况,像360Q5屏碎了,qq浏览器不行,自带的360浏览器行,但是用着用着就卡死了。

qq浏览器反应是最快的,但老手机会出现上述问题

看来是浏览器的事,喜欢qq浏览器,但老机型该浏览器开发的不好,容易出现重复计算问题
[此贴子已经被作者于2017/5/4 19:09:52编辑过]

--  作者:有点色
--  发布时间:2017/5/4 19:08:00
--  

 你可以在代码里面,限制短时间连续访问

 

        Dim ptime As Date = iif(e.Cookies("访问时间")>"", e.Cookies("访问时间"), Nothing)
        Dim sp As TimeSpan = Date.now - ptime
        ptime = Date.now
        If sp.TotalMilliseconds > 1000  Then \'间隔1000毫秒
            Dim dr As DataRow = DataTables("表A").addnew()           
            dr("第一列")="页>"
            dr.save         
        End If
        e.AppendCookie("访问时间", Date.now)


--  作者:ytzn
--  发布时间:2017/5/4 19:11:00
--  
谢谢有点色老师,我试试