K/3 Cloud HTML5平台的常见问题解答
【问题1】:在1920*1080分辨率情况下,火狐最新版浏览器登陆K/3 Cloud的HTML5端应用,浏览器还是会出现横竖两个滚动条?
【答】:在H5下,我们的主要采用流式布局方式,默认宽度未屏幕宽度1920,支持主页数据的无限扩展,当主页数据超出屏幕的时候,这时会出现右边纵向滚动条,滚动条占用了21个像素位置,导致内容部分实际是1920+21=1941像素,这时浏览器会由于内容大于1920(1941>1920)而自动出现横向滚动条;这个一般流式内容网页都是如此;如果强制去掉横向滚动,就得实时计算实际内容高度,并依据该高度是否超出屏幕动态调整所有元素布局,导致整体性能下降。这不是流式布局的初衷。
【问题2】:在较大数据量下,比如1K~10K行数据时,表格和列表都会出现分页,操作就不大方便?
【答】:由于网页性能考虑,在超过200行的情况下强制进行数据分页。否则网页的DOM树会巨大导致网页性能很慢(网页的性能取决于DOM的大小)。如果网页支持很大数据量,但操作性能不好,整体还不如分页方案综合起来好。如果需要巨量数据应用,建议使用桌面客户端。H5的定位是跨平台的中小数据量操作。
对于需要巨量数据和全键盘快捷操作的录单同学,一律建议采用桌面客户端。
为了提高网页表格的性能,关于表格的分页如下:
1、普通列表,基础资料列表:1~200行列表报表:我们采用网页虚模式展示列表,超过200行采用强制进行页内数据二次分页处理,每页50行,在左下角以页码按钮展示;
2、单据体或使用可编辑表格实现的报表:1~200行->我们采用实模式,超过200行采用强制进行页内数据二次分页处理,每页50行,在左下角以页码按钮展示;
3、很多同学可能认为服务端延迟随需加载会比较好,但是我们的客户功能要求当前页数据过滤,分组,排序等一些列复杂功能就没法得到满足;延迟延迟随需加载仅在简单流水时比较适用。
【问题3】:桌面客户端支持右键调整单据布局,HTML5端不支持?
【答】:考虑下面三方面内容:
1、考虑到网页元素操作性,尤其是拖动大小等操作性不好;
2、网页端我们将向流式文档布局方向发展,在流式布局中,不存在可以用户随意调整字段位置的可能,都是这个业务块的位置调整,这样的调整可以通过流式布局的纵向,横向,列布局完成;
3、而且布局调整也不是常用性功能,一般一次调整完成后,后续基本按月或按年都不会动了。
因此,有这方面需求的,可以在桌面客户端调整好。在网页端就能展示效果了。
【问题4】:HTML5中列不能支持列拖动到表格外面实现列删除的功能?桌面客户端可以哦。
【答】:这个功能其实意义不大,一旦点击刷新,删除的列又回回来,尤其是有业务功能需要对列进行动态编程时,就容易出现冲突,最好的做法是把不想看到的列在过滤方案中设置为隐藏即可一劳永逸;另外,动态拖动删除列也会导致界面的表格布局重算,当数据量较大,列较多时会严重影响性能表现,因此一般也不建议这样做。
【问题5】:为何IE11浏览器打开K/3 Cloud HTML5端应用,始终还是提示浏览器不符合?
【答】:由于用户设置了IE11浏览器的兼容性设置,导致IE11浏览器运行在IE7的内核上,引起不支持HTML5的现象,去掉浏览器的兼容性设置即可。(如何去掉兼容性设置,请直接百度搜索一下,会有很多答案)。
【问题6】:为何HTML5录入数字比较随意,首位也可以录入0?
【答】:为了提高网页数字录入的便捷性,录入时不做严格控制,录入完成后再做校验。否则校验非法会导致数据修复,会导致光标定位,会导致修改中间某个数字时,修改个位小数时等等都会出现录入困难,操作性不佳的问题。最初考虑对数字控件录入的严格控制,但发现实际各种情况都有,录入,录入后定位光标再修改,在首位修改为0再加小数点,加完小数点回去改整数位,首位加负号,中间修改...等(人类行为的随机性),导致数字控件的录入非常麻烦不好用,最后为了优先快速录入的便捷性,全部控制都去掉了。再网页端这些控制带来了现有性能消耗(录入卡顿)和导致快速录入的便捷性受到极大的影响。为了保证录入的流畅性和可用性,不再做特殊控制。
【问题7】:外网xxxx映射到内网的iis的yyy端口,内网的yyy端口部署了K/3 Cloud,但从外网访问总报错;
【答】:
方案一、更新补丁到2018-3-23号以后补丁,已经支持了内外网不同端口的映射设置;(推荐)
方案二、如果暂时升级不了,可以按下面配置实现外网访问:
服务器并不知道外网代理映射了多少次,所以这个必须从部署层面进行解决。建议如下:
1、外网80映射 内网IISxxx端口;(比如8081端口).
2、外网xxx端口映射内网IISxxx端口;(比如外网8081->IIS:8081).
3、或者外网xxx端口映射外网的xxx端口;(比如外网8081->外网80).
4、如果是ARR反向代理,也是可以配置url重写规则的。
5、如果外网80被屏蔽,内网创建和外网端口一致的虚拟站点(比如外网是7088,内网也创建7088的站点),然后在该站点下创建虚拟应用K3Cloud,指向WebSite目录,同时应用程序池和安装虚拟站点的一致即可。(路由设置虚拟服务器映射:外网7088->IIS:7088)
【问题8】:外网https到内网http的映射
【答】:如果做了https到http的映射,必须在转发的请求的headers里面增加下面参数。
X-Forwarded-Proto = https
【问题9】 IIS版本号可以被识别。
【答】通过IIS配置可以解决。
详细参考:
https://blogs.msdn.microsoft.com/varunm/2013/04/23/remove-unwanted-http-response-headers/
http://www.cnblogs.com/dudu/p/iis-remove-response-readers.html
https://bbs.aliyun.com/read/535787.html?page=e
【问题10】、IIS的Options选项禁用
【答】通过IIS配置可以解决。详细参考:
https://zhidao.baidu.com/question/811961865476555212.html
【问题11】、用ie浏览器打开单据会比较慢!
【答】1、IE浏览器对HTML5的解析运行引擎本身效率比较差些。建议使用Chrome的谷歌浏览器。
2、单据的复杂度也会影响运行效率,建议把单据设计的简单一些。
3、HTML5在定位上就是一些轻量级的快速应用,如果异常复杂的单据建议还是要区分平台,在桌面平台上可以运行一个复杂单据,然后做一个简单布局的单据在H5上跑。这样才能最大程度的发挥各个端平台的优点。
【问题12】HTML5 关于为何要本地本地打印服务,如何去掉本地服务的安装提示
【答】内容较多,参考分享贴: https://vip.kingdee.com/article/10829
【问题13】HTML5 使用IFrame再第三方网站页面嵌套云星空,单点登录连接中提示“会话超时”?
【答】Chrome v80以上对Iframe有严格限制,所有跨域的iframe内部请求强制cookie为samesite=lax,同时对samesite=none的强制移除,导致登录失败提示超时。
目前解决方案两个:
1、打开Chrome浏览器设置,将chrome://flags/#same-site-by-default-cookies禁用,然后重启浏览器即可解决。
2、直接采用云星空独立入口模式,不要用iFrame嵌套,从而避开chrome v80以上的这个坑。
相关应用模式可以参考IMC平台整体方案 https://vip.kingdee.com/article/93370104678936320
【问题14】k3cloud/html5/index.aspx 作用这种HTML5的方式,打开页面操作。那么这个能否适配不同的访问终端,比如电脑的浏览器,手机的浏览器和Pad平板的浏览器。
【答】云星空 k3cloud/html5/index.aspx 主要是在PC桌面端使用,我们推荐使用谷歌浏览器获得最佳性能体验。
在移动端,如手机和其他终端由于屏幕小,我们不推荐使用桌面端功能,而是推荐使用移动端的功能,移动端同样支持移动BOS的移动端表单设计。
桌面端不考虑适配所有终端,手机和其他终端由于屏幕小,而桌面端单据内容非常多,使用桌面端pc端的BOSIDE业务设计出来的动态表达放到移动端用,就相当于一大碗汤用一个小调羹一样,使用体验并不好,所以不推荐使用。
而自适应屏幕问题,这不是简单的屏幕宽度自适应问题。涉及到人机整体效果和业务类型。每个终端都有每个终端的优势和劣势,要定位好各个终端的应用场景与业务范围,来提升终端优势,避免终端劣势,而不能用一个大而全的功能来适应所有屏幕,这样就会导致终端硬件成本高,人机交互,复杂度,性能,资源,周期等一系列问题。
【问题15】为什么我们产品在浏览器中刷新会到登录页面,而不是像一般的系统一样保留登录状态。想知道这个是基于什么考虑。
【答】基于以下几点考虑:
1、基于安全考虑,避免浏览器多页签下,通过拷贝url链接实现多开主控,甚至导致网络控制可能出现无法锁定的异常;
2、星空是SPA单页应用,基于元数据的领域模型来驱动表单的动态构建,因此提供最大的平台弹性和业务扩展性,业务都是实时数据,同时也避免被爬虫软件进行数据攻击和爬取,因此根本不需要进行浏览器刷新。
3、基于云资源有效考虑,单页应用也能最大效率的复用资源,避免服务端和客户端资源重复加载浪费。而浏览器刷新后会导致主控表单需要重新打开,原来打开的单据会浪费云端资源,增加云端费用,导致客户的云端成本增加。
4、最新补丁已经支持浏览器刷新前提示了,从而避免误操作,2020-11补丁之后在common.config中增加参数 <add key="IsUnloadConfirm" value="true" />参数配置即可实现,配置方法参考:https://vip.kingdee.com/article/146280 ;
【答】这在目前是不可避免的现象。就象手机端的xx小程序和本地App类似,操作体验会有一定差异。
HTML5是解析型语言和本地代码运行效率相比会低一些,因此这个本身就是技术路线上的差异。
【...】
-------------------------
last changed:
编辑于2017年6月28日 09:43:21
编辑于2020年10月27日 17:36:32
编辑于2021年6月2日 13:29:26
K/3 Cloud HTML5平台的常见问题解答
本文2024-09-23 03:48:13发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-161199.html