conversejs / converse.js

Web-based XMPP/Jabber chat client written in JavaScript
http://conversejs.org
Mozilla Public License 2.0
3.06k stars 763 forks source link

Huge amount of friends in list causes browser to block sometime #2466

Open vampiebar opened 3 years ago

vampiebar commented 3 years ago

When we load approx 2000 people in list ( prosody shared groups ) it blocks browser.. Is there anyway ( webworker or something else ) to make it faster? ( lazy load etc ?)

To Reproduce Steps to reproduce the behavior:

  1. Go to https://kipp.vc8.live/akay/test2.html#
  2. user : user1@chat.vc8.live pass: deneme12
  3. While page loading mouse scroll of chrome is not working

I just need faster load without blocking browser

Screen Shot 2021-04-24 at 22 54 00

--- Want to back this issue? **[Post a bounty on it!](https://app.bountysource.com/issues/98109505-huge-amount-of-friends-in-list-causes-browser-to-block-sometime?utm_campaign=plugin&utm_content=tracker%2F194169&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://app.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F194169&utm_medium=issues&utm_source=github).
jcbrand commented 3 years ago

The current master branch of Converse (for upcoming 8.0.0 release) uses web components to render the UI, and it's now much faster.

You can test a build of the master branch here: https://conversejs.org/trunk/

You can also run make dist on a fresh checkout of the master branch and then use the dist directory to host it yourself.

Can you try it out and see whether there's an improvement for you?

vampiebar commented 3 years ago

I tested this and speed is the same .. you can produce this with 1600-2000 people in your list with prosody

On Thu, Apr 29, 2021 at 11:54 AM JC Brand @.***> wrote:

The current master branch of Converse (for upcoming 8.0.0 release) uses web components to render the UI, and it's now much faster.

You can test a build of the master branch here: https://conversejs.org/trunk/

You can also run make dist on a fresh checkout of the master branch and then use the dist directory to host it yourself.

Can you try it out and see whether there's an improvement for you?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/conversejs/converse.js/issues/2466#issuecomment-829058488, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALLSR3XMDKG2O7HFEWFVDLTLENDXANCNFSM43QOZLIA .

vampiebar commented 3 years ago

Also, we can use lazy div for container of list so addition for div as friends list will not block browser.

On Thu, Apr 29, 2021 at 6:47 PM Barış Gerze @.***> wrote:

I tested this and speed is the same .. you can produce this with 1600-2000 people in your list with prosody

On Thu, Apr 29, 2021 at 11:54 AM JC Brand @.***> wrote:

The current master branch of Converse (for upcoming 8.0.0 release) uses web components to render the UI, and it's now much faster.

You can test a build of the master branch here: https://conversejs.org/trunk/

You can also run make dist on a fresh checkout of the master branch and then use the dist directory to host it yourself.

Can you try it out and see whether there's an improvement for you?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/conversejs/converse.js/issues/2466#issuecomment-829058488, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALLSR3XMDKG2O7HFEWFVDLTLENDXANCNFSM43QOZLIA .

jcbrand commented 3 years ago

Also, we can use lazy div for container of list so addition for div as friends list will not block browser.

That's assuming the freezes are due to DOM writes. Might be true, but I don't know currently.

member7me commented 3 years ago

Checked v8. Confirm @vampiebar's comment. Big roster freezes browser.

Neustradamus commented 2 years ago

Have you progressed on this problem?

vampiebar commented 2 years ago

I haven't seen any progress on this

On Thu, Oct 28, 2021 at 5:55 PM Neustradamus @.***> wrote:

Have you progressed on this problem?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/conversejs/converse.js/issues/2466#issuecomment-953926730, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALLSR3FVTIIHEUY44525RTUJFW6PANCNFSM43QOZLIA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

jcbrand commented 1 year ago

@vampiebar, @member7me: Have you noticed any improvements? The roster contacts are now registered via Lit components and should be faster.