Skip to content

Comments

fix: improve peformance while retrieving multiple elements#665

Merged
vobu merged 2 commits intov9_performance_fix_0.1from
wdi5_performance_improvement_v2
May 16, 2025
Merged

fix: improve peformance while retrieving multiple elements#665
vobu merged 2 commits intov9_performance_fix_0.1from
wdi5_performance_improvement_v2

Conversation

@Siolto
Copy link
Collaborator

@Siolto Siolto commented Apr 17, 2025

Depending on the amount of calls via getItems(), getCells() ... this is a huge performance improvement with about ~30% and resolves the BiDi race condition.

@Siolto Siolto requested a review from vobu April 17, 2025 08:51
@Siolto
Copy link
Collaborator Author

Siolto commented May 16, 2025

hey @vobu: Could you have a look? I would like to merge this :)

@vobu vobu merged commit f0a9c7e into v9_performance_fix_0.1 May 16, 2025
1 of 2 checks passed
Siolto added a commit that referenced this pull request Jun 4, 2025
* fix: performance

* fix: improve error handling and result processing in executeControlMethod

* fix: refactor executeObjectMethod not using callbacks

* test: update DateTimePicker API test to use ISO string format

* fix: update generated-methods test to handle different date formats based on protocol

* fix: await browser.asControl in press test for proper asynchronous handling

* fix: bidi race condition in retrieveElements

* fix: update Planning Calendar test to handle BIDI-specific DOM controls

* fix: optimize control retrieval for BIDI by removing unnecessary await

* fix: adjust BIDI handling in exec test to avoid Promise.all for performance

* chore: configuration

* fix: add TODO comment for handling UI5 injection options

* refactor: remove propietary waitForUI5

* refactor: run planningCalendar test also with BiDi protocol

* fix: improve peformance while retrieving multiple elements (#665)

[skip ci]

* refactor: rename clientSide__checkForUI5Ready to clientSide_checkForUI5Ready for consistency

* chore: lock file

* fix: test

* refactor: rm unnecessary await

---------

Co-authored-by: Volker Buzek <dev@metalodge.com>
mauriciolauffer pushed a commit to mauriciolauffer/wdi5 that referenced this pull request Jun 6, 2025
* fix: performance

* fix: improve error handling and result processing in executeControlMethod

* fix: refactor executeObjectMethod not using callbacks

* test: update DateTimePicker API test to use ISO string format

* fix: update generated-methods test to handle different date formats based on protocol

* fix: await browser.asControl in press test for proper asynchronous handling

* fix: bidi race condition in retrieveElements

* fix: update Planning Calendar test to handle BIDI-specific DOM controls

* fix: optimize control retrieval for BIDI by removing unnecessary await

* fix: adjust BIDI handling in exec test to avoid Promise.all for performance

* chore: configuration

* fix: add TODO comment for handling UI5 injection options

* refactor: remove propietary waitForUI5

* refactor: run planningCalendar test also with BiDi protocol

* fix: improve peformance while retrieving multiple elements (ui5-community#665)

[skip ci]

* refactor: rename clientSide__checkForUI5Ready to clientSide_checkForUI5Ready for consistency

* chore: lock file

* fix: test

* refactor: rm unnecessary await

---------

Co-authored-by: Volker Buzek <dev@metalodge.com>
vobu added a commit that referenced this pull request Jul 6, 2025
* ci: Improve ESLint v9 config

* ci: Bump GH Actions checkout and setup-node to v4

* ci: Bump GH Actions github/codeql-action/*  to v3

* ci: Bump GH Actions download-artifact and upload-artifact to v4

* ci: Bump prettier version

* chore: Bump types versions

* chore: Linting + types

* fix: Mostly any types

* fix: Remove deprecated browser.switchToFrame

* fix: use crypto.randomUUID

* refactor: load UI5 libs in 1 task

* fix: remove multiple any types

* chore: linting

* fix: performance (#658)

* fix: performance

* fix: improve error handling and result processing in executeControlMethod

* fix: refactor executeObjectMethod not using callbacks

* test: update DateTimePicker API test to use ISO string format

* fix: update generated-methods test to handle different date formats based on protocol

* fix: await browser.asControl in press test for proper asynchronous handling

* fix: bidi race condition in retrieveElements

* fix: update Planning Calendar test to handle BIDI-specific DOM controls

* fix: optimize control retrieval for BIDI by removing unnecessary await

* fix: adjust BIDI handling in exec test to avoid Promise.all for performance

* chore: configuration

* fix: add TODO comment for handling UI5 injection options

* refactor: remove propietary waitForUI5

* refactor: run planningCalendar test also with BiDi protocol

* fix: improve peformance while retrieving multiple elements (#665)

[skip ci]

* refactor: rename clientSide__checkForUI5Ready to clientSide_checkForUI5Ready for consistency

* chore: lock file

* fix: test

* refactor: rm unnecessary await

---------

Co-authored-by: Volker Buzek <dev@metalodge.com>

* fix: use crypto.randomUUID

* fix: revert

* build: clean script

* test: add more UI5 LTS versions

* refactor: remove fs-extra

* chore: pretty sure package "i" was installed by mistake

* test: fix expected value

* chore: update workflows to also run against v9-support

* test: use a public method to test selected element

* test: expect().toHaveTextContaining() doesn't exist

* test: replace getInitStatus() by isInitialized()

* test: fix wdio-ui5tooling.conf.js

* test: remove deepmerge dependency

* chore: npm shouldn't be a dependency

* test: simplify test deps with peerDeps

* test: replace sinon by node:test

* fix: remove devtools dep

* fix: use browserInstance rather than global browser

* fix: no console - use wdi5 Logger

* refactor: compare-versions package as a real dependency

* refactor: remove more browser globals

* test: add browserVersion to make tests more stable + no node:join in specs

* chore: prettier

* chore: remove old eslint files

* fix: baseUrl is mandatory, must fail if missing

* fix: load ui5 libs at once

* refactor: client-side-js is also typed

* fix: use control.getMetadata().getName()

* docs: add statement for new bidi protocol

* Update docs/migration.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix: multiremote race condition where injectUI5 was not done

* wip: use stable ubuntu version

* wip: decrease ubuntu version

* chore: add multiremote to the tests again

* refactor: linting

* refactor: ts erasableSyntaxOnly

* fix: wdio bridge

* chore: use stable ubuntu version due to chrome138 pipeline issues

* fix: increase timeout for ts tests in pipeline

---------

Co-authored-by: Simon Coen <32054457+Siolto@users.noreply.github.com>
Co-authored-by: Volker Buzek <dev@metalodge.com>
Co-authored-by: Marian Zeis <13335743+marianfoo@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Siolto <simon.coen@js-soft.com>
@vobu vobu deleted the wdi5_performance_improvement_v2 branch July 7, 2025 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants