以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于网页设计的一个问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145173) |
||||
-- 作者:1669607010 -- 发布时间: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 |
||||
-- 作者:有点蓝 -- 发布时间:2020/1/10 16:41:00 -- 把这个事件的完整代码和httprequest事件完整代码放到txt文件发上来 |
||||
-- 作者:1669607010 -- 发布时间:2020/1/10 16:50:00 -- 这是全部代码
|
||||
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间: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编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/1/10 22:28:00 -- 3楼这种代码要20秒?只能说是手机环境或者是服务器环境有问题了,不是代码的原因。 不存在永久的缓存。缓存在内存中,关闭浏览器(微信)就没有了。缓存的是文件,没有什么静态动态之分
|
||||
-- 作者:1669607010 -- 发布时间:2020/1/10 23:38:00 -- 我现在刚开始做手机端,因为公司比较小,现在程序运行在局域网里,大约有30台电脑,没有专门的服务器,数据库就装在一台性能还可以的普通电脑上,PC端完全够用了,速度什么的也都可以,基本上能秒开。然后数据库所在的电脑映射到外网上,然后用手机访问页面时候,就从打开封装了网页的APP开始算,到主页完全打开就得10几20秒,然后打开其他网页两到七八秒不等,请问老师要想手机端打开页面提交数据什么的也达到1—2秒能完成,需要配置什么样的服务器,还有就是对网络带宽有什么要求,? |
||||
-- 作者:有点蓝 -- 发布时间:2020/1/11 8:36:00 -- 手机使用wifi接入局域网,以局域网的方式访问网页,这样慢不慢? |
||||
-- 作者:1669607010 -- 发布时间:2020/1/11 9:32:00 -- 手机使用局域网WIFI连接速度能提升20%左右,但还是有点慢,特别是加载TabBar页面比较多的网页时,通常要等待5秒以上,现在代码和页面这么少就这么卡,要是再添加页面就没法用了。我现在的数据库所在的主机是八代i5的处理器,是不是主机性能不行,我们公司小,没条件上大型专用服务器,现在有1万块的预算,请问是配台i7处理器的主机、还是配一台至强E5洋垃圾或者咸鱼上淘个二手服务器合适? |
||||
-- 作者:有点蓝 -- 发布时间: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左右
|