我正在从传单上的以下 Web 服务器渲染流程:
“https://watersgeo.epa.gov/arcgis/rest/services/NHDPlus_NP21/NHDSnapshot_NP21/MapServer/0”;
这是一个复杂的图层,我仅在缩放级别大于 9 时才打开渲染。
95% 的情况下它工作正常,但缩放后偶尔会出现极端的滞后。例如,最近界面滞后了21秒。
const FLOWLINES_LAYER = L.esri.featureLayer({
url: URL_NP21_FLOWLINES,
onEachFeature: FLonEachFeature,
});
我在 DevTools 中进行性能分析,它显示了 XHR 就绪状态更改下的 21 秒任务 - 时间可追溯到 arcgisToGeoJSON 和 ConvertRingstoGeoJSON。
我正在使用最新版本的 ESRI leaflet (3.0.12)。
两个问题——这种滞后可以减少或消除吗?
也许更重要的是,我怎样才能捕捉到这种滞后发生的时间,并用“等待”鼠标光标提醒用户。我认为一个应用程序冻结 20 秒就完成了。实际上,我并不介意罕见的延迟,因为我们要求大量传单,并且网络服务有时很慢。但我强烈希望能够抓住这种滞后并提醒用户保持信心。
谢谢
关于第二个问题,添加开始加载和完成加载的事件监听器将为应用程序提供等待光标。
// Event listener for when layer starts loading
FLOWLINES_LAYER.on('loading', function () {
// Change cursor to 'wait' when loading starts
document.getElementById('map').style.cursor = 'wait';
});
// Event listener for when layer finishes loading
FLOWLINES_LAYER.on('load', function () {
// Revert cursor back to default when loading finishes
document.getElementById('map').style.cursor = '';
});