I am developing a DApp and I am struggling with the efficient loading from the blockchain and displaying in the frontend.
I am loading all the items at once. When the list of the items grows very large (> 500), frontend starts lagging and the loading is kinda slow
(I get warnings like "[Violation] Forced reflow while executing JavaScript took 87ms"). The page has a pagination and sorters/filters,
thus I cannot load items partially (by index), as I don't know how many of them I will need when filters/sorters are applied.

As for the huge amount of requests you are making, you are going to need to run your own node and have some node.js watching events and contracts. There is no guarantee infura or etherscan will in the future allow so many requests to hammer them for free.