当前位置:网站首页>ArcGIS JS 地图内外网环境判断问题
ArcGIS JS 地图内外网环境判断问题
2022-07-28 05:52:00 【不超限】
为了实现内网环境下读取内网服务器资源,外网环境下读取简化版的内容。
计划通过访问内网接口,如果返回成功,则说明是内网环境;如果未返回内容,则是外网。
地图库已经通过TypeScript搭建,较复杂,代码量较大。
方案一
通过dojo.xhr模块,请求测试接口,并设置参数为 {sync:true,timeout:200}
由于已有的地图库为同步结构,因此,在此处使用同步请求,并设置超时为200,待200ms后,判断出内外网环境后再执行后续代码。
测试后发现,功能上实现要求。效果上,timeout参数无效,该请求一般是卡住21秒左右,才能判断出内外网环境。
查询dojo官方资料,同步请求时,timeout参数无效。
20多秒的延迟无法接受,没法用。只能换方案
方案二
使用异步请求方案
通过测试发现,xhr请求时,可以较快的判断出是内外网环境,因此决定采用异步的方法。
由于已有的代码结构大多为同步写法,使用异步时,可能会存在内外网环境判断未完成,地图初始化工作未完成时,后续相关代码库已经开始执行,导致产生很多未知的undefined之类的对象未获取到的问题。
最终通过自定义Accessor类,使用watchUtils.whenTrue()方法,来解决该问题。
参考帖子
ArcGIS JS自定义Accessor,并通过watchUtils相关方法watch属性_不超限的博客-CSDN博客
检索了很多资料,前端没有发现合适的方法可以检测内外网。如果有更好的解决方案,欢迎大家分享
边栏推荐
- DNA-Ag2SQDs脱氧核糖核酸DNA修饰硫化银Ag2S量子点的合成方法
- Redis的RDB持久化和AOF持久化的底层原理
- Student duty problems
- 移动端H5输入框调起手机软键盘,导致底部固定定位被顶起解决方法
- MHA high availability configuration and failover
- 干货|分享一个EMC实际案例及整改过程
- 4.1.4 why set the member variable to private
- LeNet5、AlexNet、VGGNet、ResNet
- ESLint常见问题解决方案集锦
- 近红外二区AgzS量子点包裹脱氧核糖核酸DNA|DNA-AgzSQDs(齐岳)
猜你喜欢

CLion调试redis6源码

【google】解决google浏览器不弹出账号密码保存框且无法保存登录信息问题

Daily question - split equal sum subset

常用电子产品行业标准及认证

Safflower STL

Advanced pointer practice

CAS vs 数据库乐观锁

Dynamic memory management knowledge points

The net loss of users occurred again, and China Mobile, which lost face, launched ultra-low price packages to win users

Activate function
随机推荐
ASP.NET Core 技术内幕与项目实战读后感
Principle and configuration of redis master-slave replication
C语言详解系列——数组详解,一维数组、二维数组
DNA修饰贵金属纳米颗粒|DNA修饰纳米铜颗粒CuNPS-DNA|研究要点
整改了七次,花了半个月时间,惨痛的EMC总结
合并两个排序的链表——每日两题
Reasons why null is not recommended for MySQL fields
[JVM optimization] online JVM tuning practice
EMC rectification method set
Pytorch extracts the feature map of a certain layer
移动端H5输入框调起手机软键盘,导致底部固定定位被顶起解决方法
Tutorial (7.0) 06. Zero trust network access ztna * forticlient EMS * Fortinet network security expert NSE 5
指针进阶练习
隔离级别RR、间隙锁、幻读
两个星期学会软件测试?我震惊了!
链表中倒数第k个节点——双指
Which of class A and class B is more stringent in EMC?
Heroku operation summary
(每日一题)——最长不含重复字符的子字符串
Using identity framework to realize JWT identity authentication and authorization in.Net 6.0