ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

SAP UI5 里有没有类似 RxJS debounce 的机制,从 liveChange 到 OData 搜索防抖的完整理解

SAP UI5 里有没有类似 RxJS debounce 的机制,从 liveChange 到 OData 搜索防抖的完整理解 在 SAP UI5 项目里,只要我们把搜索框的liveChange事件接到 OData 查询上,很快就会遇到一个很现实的问题。用户连续输入S、SA、SAP、SAP U、SAP UI5,代码可能跟着触发一连串过滤、绑定刷新甚至 HTTP 请求。页面看起来只是输入了几个字符,浏览器的 Network 面板里却已经排起了一串请求。这种场景与 RxJS 里debounce和debounceTime要解决的问题几乎完全一致。所以答案可以先定下来。SAP UI5 里完全可以实现与 RxJSdebounce非常接近的行为,而且这是搜索框、Suggestion、动态过滤、远程校验之类场景里很常见的工程处理手段。不过 SAP UI5 并没有建立 RxJS 那套 Observable Operator 体系,因此不能期待存在一个通用的 UI5debounce()Operator,让我们直接写成source.pipe(debounce(...))。现代 SAP UI5 项目里更常见的方案,是围绕liveChange、suggest等事件,通过setTimeout和clearTimeout实现 trailing debounce,或者在本来已经引入 RxJS 的复杂应用里直接使用 RxJS。这里有一个很容易混淆的地方。日
返回列表