Foxtable(狐表)用户栏目专家坐堂 → 关于网页设计的一个问题


  共有2663人关注过本帖树形打印复制链接

主题:关于网页设计的一个问题

帅哥哟,离线,有人找我吗?
1669607010
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
关于网页设计的一个问题  发帖心情 Post By:2020/1/10 16:36:00 [只看该作者]

按照开发文档里的例子做了个出库页面,这个网页测试一切正常,能录入数据,也能扫二维码录入,现在想把这个页面移植到TabBar某个页面里,为什么移植这个页面后,TabBar这个页面之前的页面能显示,这个页面之后的页面就不显示了,把这个移植界面里的2行e.WriteString(wb.Build)删除,就能显示之后的页面了,但这个移植的出库界面的按钮就失效了。请问下面的代码应该怎么改?我现在大体知道是这句代码e.WriteString(wb.Build)用的不对,但怎么改不知道,哪位老师给指导一下


        If e.PostValues.Count = 0 Then

            wb.AppendHTML("<script src='/" & path & "/js/生产原料出库预估计算.js'></script>", True)

           

            ' wb.InsertHTML("<h1  style='font-size:25px;'>生产原料出库</h1>")

            wb.AddToast("","t1", "正在保存",1) '定义提示

           

            wb.AddForm("","form1","2-smck.htm").attribute= """

            With wb.AddInputGroup("form1","ipg1","生产原料出库")

                'wb.InsertHTML("<h1  style='font-size:18px;'>原料货号</h1>")

                With .AddInputCell("ic1") '通过InputCell增加输入框

                    .AddLabel("lnl","原料货号",0) '增加标签,0显示在左边

                End With

                .AddInput("原料货号","","Text") '前一个"姓名"是ID,后一个"姓名"是标题

               

                .AddInput("操作日期","出库日期","date").Value = Format(Date.Today,"yyyy-MM-dd")

                .AddInput("原料类型","原料类型","Text") '前一个"姓名"是ID,后一个"姓名"是标题

                .AddSelect("领料单位","领料单位","散染车间|梳纺车间|兔毛纺车间|外协纺纱|其他用途")

                .AddInput("ckjs","出库件数","number").Step = "0.01"

                .AddInput("mjbz","每件标重","number").Step = "0.01"

                '.AddInput("ygbz","预估出库","number")

               

                With .AddInputCell("sj") '通过InputCell增加输入框

                    .AddLabel("lsj","预估出库",0)'增加标签,0显示在左边

                    .AddInput("ygbz","number",1).Step = "0.01" '增加输入框,1表示显示在中间

                    .AddVcodeButton("hym","预估计算",2).Attribute =""

                   

                End With

               

               

                

               

               

               

                .AddInput("出库标重","出库标重","number").Step = "0.01"

                .AddSwitch("是否清批","是否清批").Value = "True"

               

                .AddInput("外协单位","外协单位","Text") '前一个"姓名"是ID,后一个"姓名"是标题

                .AddInput("备注","备注说明","Text") '前一个"姓名"是ID,后一个"姓名"是标题

            End With

           

            With wb.AddButtonGroup("form1","btg5",False)

                .Add("btn1", "返回菜单","" ,"default.htm")

                '.Add("btn2", "返回", "","1-ylck.htm")

                .Add("btn5", "扫一扫码", "button").Attribute =  " & path & "/plus/barcode_scan.html',true,true);"""

                .Add("btn2", "确定出库", "submit")

               

            End With

           

            'wb.InsertHTML("<script>function scaned( t, r, f ) {document.getElementById('原料货号').value=r;}</script>")

            wb.InsertHTML("<script>function scaned( t, r, f ) {dosomthing(r);}</script>")

            wb.AppendHTML("<script type='text/javascript' src='/" & path & "/js/扫码相关.js'></script>", True)

            wb.AppendHTML("<script src='/" & path & "/js/生产原料出库预估计算.js'></script>", True)

            '引入脚本文件

            e.WriteString(wb.Build)

        Else

            Dim nms() As String = {"操作日期","原料货号","领料单位","出库标重"} '不能为空的列名数组

            For Each nm As String In nms

                If e.PostValues.ContainsKey(nm) = False Then '生成错误提示页

                    With wb.AddMsgPage("","msgpage","增加失败", nm & "列不能为空!")

                        .icon = "Warn" '改变图标

                        .AddButton("btn1","返回").Attribute = ""

                    End With

                    e.WriteString(wb.Build)

                    Return '必须返回

                End If

            Next

           

            

           

            Dim dr As DataRow = DataTables("外购原料出库").AddNew()

            dr("移动出库") =True

            dr("发料人") =UserName

           

            Dim inms() As String = {"操作日期","原料类型","原料货号","领料单位","出库标重","ckjs","是否清批","外协领料单位名称","备注"'输入框名称数组

            Dim cnms() As String = {"操作日期","原料类型","原料货号","领料单位","出库标重","出库件数","是否清批","外协领料单位名称","备注"'列名数组,注意列名和输入框必须一一对应,位置不能错乱

            For i As Integer = 0 To inms.Length -1

                dr(cnms(i)) = e.PostValues(Inms(i))

            Next

            dr.Save() '保存并生成增加成功提示页面

           

            With wb.AddMsgPage("","msgpage","出库成功!","")'生成成功提示页

                .AddButton("btn1","继续出库","2-smck.htm")

            End With

        End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106675 积分:542564 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/10 16:41:00 [只看该作者]

把这个事件的完整代码和httprequest事件完整代码放到txt文件发上来

 回到顶部
帅哥哟,离线,有人找我吗?
1669607010
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2020/1/10 16:50:00 [只看该作者]

这是全部代码
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:移动端代码0109.zip


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106675 积分:542564 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/10 17:03:00 [只看该作者]

把上面第一个e.WriteString(wb.Build)去掉即可

            wb.InsertHTML("<script>function scaned( t, r, f ) {dosomthing(r);}</script>")

            wb.AppendHTML("<script type='text/javascript' src='/" & path & "/js/扫码相关.js'></script>"True)

            wb.AppendHTML("<script src='/" & path & "/js/生产原料出库预估计算.js'></script>"True)

            '引入脚本文件

            '去掉e.WriteString(wb.Build)

      'return '或者在后面加一个


事件最后也有一个e.WriteString,实际上调用2次了。在一次返回中只能调用一次e.WriteString,否则就会冲突,重复生成网页内容,导致格式异常



 回到顶部
帅哥哟,离线,有人找我吗?
1669607010
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2020/1/10 22:08:00 [只看该作者]

蓝老师,还有一个问题请教,现在刚开始尝试做移动开发,现在的问题是手机端加载页面很慢,复杂的页面要20秒,等的心慌,看到帮助里有使用缓存的方法,我现在手机端的页面是封装在app中的,请问一下,使用缓存是直接在代码里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" ,".zip",".rar"
            e.CacheTime = 3600 '缓存文件一个小时
            e.WriteFile(fl)
            Return 
        Case ".html",".htm"
            e.WriteFile(fl)
            Return 
    End Select
End If
直接加上e.CacheTime = 3600 这句代码就可以吗?还有就是这个缓存时间设置为多少有什么讲究吗?比如说我想要永久缓存可以吗?还有就是所有页面我不管是动态的还是静态的都缓存可以吗?
    还有就是这些缓存东西缓存到哪里了?是缓存到手机运行内存里还是缓存到手机储存里了?
[此贴子已经被作者于2020/1/10 22:16:29编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106675 积分:542564 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/10 22:28:00 [只看该作者]

3楼这种代码要20秒?只能说是手机环境或者是服务器环境有问题了,不是代码的原因。

不存在永久的缓存。缓存在内存中,关闭浏览器(微信)就没有了。缓存的是文件,没有什么静态动态之分

 回到顶部
帅哥哟,离线,有人找我吗?
1669607010
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2020/1/10 23:38:00 [只看该作者]

我现在刚开始做手机端,因为公司比较小,现在程序运行在局域网里,大约有30台电脑,没有专门的服务器,数据库就装在一台性能还可以的普通电脑上,PC端完全够用了,速度什么的也都可以,基本上能秒开。然后数据库所在的电脑映射到外网上,然后用手机访问页面时候,就从打开封装了网页的APP开始算,到主页完全打开就得10几20秒,然后打开其他网页两到七八秒不等,请问老师要想手机端打开页面提交数据什么的也达到1—2秒能完成,需要配置什么样的服务器,还有就是对网络带宽有什么要求,?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106675 积分:542564 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/11 8:36:00 [只看该作者]

手机使用wifi接入局域网,以局域网的方式访问网页,这样慢不慢?

 回到顶部
帅哥哟,离线,有人找我吗?
1669607010
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2020/1/11 9:32:00 [只看该作者]

手机使用局域网WIFI连接速度能提升20%左右,但还是有点慢,特别是加载TabBar页面比较多的网页时,通常要等待5秒以上,现在代码和页面这么少就这么卡,要是再添加页面就没法用了。我现在的数据库所在的主机是八代i5的处理器,是不是主机性能不行,我们公司小,没条件上大型专用服务器,现在有1万块的预算,请问是配台i7处理器的主机、还是配一台至强E5洋垃圾或者咸鱼上淘个二手服务器合适?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106675 积分:542564 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/11 10:09:00 [只看该作者]

1、考虑使用grid分流一下,不要什么东西都放到一个页面里,http://www.foxtable.com/mobilehelp/topics/0077.htm
2、可以考虑把TabBar的页面做成动态加载的,而不是一开始就加载所有的页面,如:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=106788&replyID=&skin=1
3、服务器建议购买云服,按现在行情2核8G,5M带宽的服务器使用3年费用也就6000左右

 回到顶部
总数 12 1 2 下一页