Crocoblock / suggestions

The suggestions for CrocoBlock project
195 stars 78 forks source link

Improve AJAX Performance (JetEngine / JetSmartFilters) / Unusable with Elementor 3.6 #5639

Closed valmirselmani closed 11 months ago

valmirselmani commented 2 years ago

Loading posts via AJAX wasn't exactly fast to begin with, but with the Elementor 3.6 update, it's now even worse. I would say it is unusable.

Test results with CPT, which has about 250 posts. But it is also very slow when it has only 10 to 20 posts.

Elementor 3.5 Listing Grid (load 27 posts): 1.5 to 2 seconds Listing Grid (JetSmartFilter): 1.5 to 3 seconds Listing Grid (Reset Filter): 1.5 to 2 seconds

jetengine_elementor_3_5

Elementor 3.6 Listing Grid (load 27 posts): 5.5 to 8 seconds Listing Grid (JetSmartFilter): 6 to 16 seconds Listing Grid (Reset Filter): 6 to 16 seconds

jetengine_elementor_3_6

Tested on the same website, the same server, the same plugins. Only with the update to Elementor 3.6. I've been holding off updating to Elementor 3.6 because of the terrible performance.

Please investigate this issue as we have several large customers that rely on this feature.

I think it has something to do with Elementor. Maybe it's a good idea to talk to the Elementor development team and clarify the issues. Maybe they changed something with the rendering, which is much slower now.

However, JetEngine and JetSmartFilters could also be improved, there is still a lot of room for improvement, especially performance. The plugins are awesome aside from the terrible performance for filtering.

trofimartya commented 2 years ago

+1

mehdimoradi1500 commented 2 years ago

+1

79ho3ein commented 2 years ago

+1

unitedonline commented 2 years ago

+1

MjHead commented 2 years ago

@valmirselmani Maybe you have a staging website with the problem where we can test it, or at least reproduce the listing? Because I tested this on 500+ posts and 12 posts per page - all results less than 1 second - https://i.imgur.com/o2YVO7R.png So looks like this is not common problem, maybe the issue with some specific widgets used in listing

valmirselmani commented 2 years ago

@MjHead I could reproduce your results with a listing grid displaying only one image, a listing with multiple dynamic fields, in my case 8 custom fields. Did you test locally or on a server?

I would need some time to create a staging site where you can investigate the problem. In the meantime you can test with with multiple custom fields and see if that's the problem. However, I believe the problem is related to Elementor 3.6. They must have changed something. The same site with Elementor 3.5 is considerably faster.

It would be great if you can focus on performance in your next release. Maybe you can take some ideas from Gridbuilder (https://wpgridbuilder.com/), like Indexed Table, Custom Ajax Endpoint. If you can provide the same level of performance as the other plugin, that would be awesome.

mehdimoradi1500 commented 2 years ago

I completely agree with @valmirselmani I have heard so much in Facebook groups and all complaining about the performance of crocoblock plugins especially JetEngine I have tried wp grid builder its so fast and has better performance

MjHead commented 2 years ago

At the moment there is no issue with quering data, its rendering part. In this case speed totally depends on number of elements inside of listing grid item. Here is an example with Elementor 3.6.7 + Listing Grid + Filters - as you see, the most difference on the filter response time is related the number of Elements should be build. Unfortunately we haven't a lot of possibilities to impact on default widgets where Dynamic Tags used, only on dynamic wdgets from JetEngine and at the moment we testing on solution to speed up the render process. Hope in a few days we'll can release a beta and you'll can test.

valmirselmani commented 2 years ago

@MjHead Thanks for following up. It's always nice to see a company listen to feedback, and you guys have proven that time and time again with the new features for the plugins. You guys have laid a great foundation with the plugins, just a few improvements in performance and some other features would make your plugins even more awesome.

I thought it was the rendering, since I only changed the Elementor version. Maybe it's because Elementor is working on the underlying structure so that nested elements are possible later. Maybe you can ask the Elementor Dev Team what exactly has changed so you can better address the issue.

mehdimoradi1500 commented 2 years ago

Yes its so good to listen to the community, i think if crocoblock focus on the plugins without any reliance on page builders it will better And yes we like to see jetEngine to be so fast and with great performance.

Im using bricksbuilder with JetEngine and it has cool features to render datas! You can use several dynamic tags in one text element!

valmirselmani commented 2 years ago

@mehdimoradi1500 That's actually a very good idea, to be able to use multiple dynamic tags in the same text element. That would improve the performance a bit in my case.

@MjHead Is it possible to develop a feature where we can insert e.g. multiple dynamic tags or multiple meta fields in a text element? I am aware that it is possible to do this using the Shortcode Generator, but this solution is not so elegant.

It is tedious e.g. when I want to show first name and last name or a whole address (street, zip, city,...) in one listing. In the current implementation I would have to use two Dynamic Fields and make them inline so they are displayed next to each other.

MjHead commented 2 years ago

omg, forgot to add a link into my previous comment - https://crorotest.kinsta.cloud/woocommerce-listing/

MjHead commented 2 years ago

As for Elementor update - I think I found where is the problem, we'll investigate it deeply, but looks like it caused the more solid logic of set up widget settings when a new widget instance initiated before rendering.

@valmirselmani As for combinig of meta fields - at the moment the shortcode from shortcode generator is only option for this. We are planning a significantly improve it with 3.1 update, make it similar to dynamic field widget by functionality. From performance side it will allow you to improve a speed in the way you said - by combinig couple of fields in a single widget. Because now something around 90% of rendering single Dynamic Field widget time is initiating Elementor widget, and only 10% it a rendering widget content itself. Also if you have no too complicated layout of Listing Item, you can build it with Blocks editor and style manually with CSS

79ho3ein commented 2 years ago

hi @MjHead , According to the elementor developers, they are heavily rewriting and developing their infrastructure these days to add great features that users are asking for. So it seems that the Ajax speed drop in elementor is for this reason. Especially the version 3.7 elementor beta, which has not yet been officially released, has been a large part of the changes in the infrastructure. Therefore, after the release of version 3.7, Ajax slowdowns and other things may be exacerbated. In the recent elementor updates, the Ajax speed of the JetSearch plugin has been greatly reduced. Maybe close to 4 seconds. While it was not the case before. Also for jet smart filters plugin.

valmirselmani commented 2 years ago

@MjHead Sorry for the late reply, I was away for three weeks. This sounds great! When can we expect the 3.1 beta?

valmirselmani commented 2 years ago

@MjHead Any updates on the 3.1 release? I am still holding off on updating from Elementor 3.5 to 3.7 because of the performance issues when using multiple dynamic field widgets.

MjHead commented 2 years ago

@valmirselmani Sorry for the delay. Partially these was fixed with JetEngine 3.0.3. For me it was somwthing around 50% faster listing grid rendering. At the moment not sure if it could be improved without breaking compatibility with some parts of Elementor. So more improvements with this will arrive later, not with 3.1.0, but after it

valmirselmani commented 2 years ago

@MjHead No problem. You mentioned the feature where you can combine multiple Dynamic Field Widgets into one by displaying multiple meta fields with the same widget. That's exactly the problem, that every dynamic field widget needs an initialization time. But if instead of for example 8 widgets you only need 1 widget to display the same data. Then the problem is solved for now.

Will this feature come with 3.1.0 or later? When can we expect the 3.1.0 update?

Michaelgimii commented 2 years ago

hi @MjHead , Will we see this 50% improvement in the new version of jet smart filters or is it only applied to the jet engine? Are there any plans for a new version of jet smart filters? Thanks in advance

mehdimoradi1500 commented 2 years ago

Also i saw a post on Facebook group, talked about a fully new version of jet smart filter. Is there any news about it?

valmirselmani commented 2 years ago

@MjHead A bit more information to solve this problem. I have observed that the same page that takes 5 seconds to load the posts via Ajax (reset filter for example), takes only one second to load without Ajax (when you visit the page without filters).

On a side note, if you use maps, the pins are updated almost instantly and the listing grid takes 3-4 seconds longer below the map.

So it can't be just Elementor. It also has something to do with the Ajax handler, I think. Can't you implement some sort of cache to speed up the process? Maybe use transients and create for each post and listing type a transient that it doesn't have to be initialized again and again for each request?

I'm really frustrated that every new page I set up and filter a few posts (5 or 10 posts) takes forever to load. I have 3 sites (which all use JetEngine and JetSmartFilter) scheduled to go live this month and all are unacceptable in terms of filtering speed. Please prioritize this issue over anything else.

karifritsch commented 2 years ago

Similarly to @valmirselmani I have filters for a map listing and a listing grid with the same information. The map listing is far faster than the listing grid in every way, from initial page load to ajax filtering.

Listings always take seconds to load, even if the listing template has a total of two dynamic widgets getting text. This happens across client websites. I can get a product loop from JetWoobuilder to load instantly (but doesn't display dynamic widgets for me) where the listing grid will take 5+ seconds, even if I'm asking it to load only 9 listings on the page to start.

Because the listing grid is so utterly slow, I definitely get frustrated that other Jet plugins (JetWoobuilder, etc.) do not give the same abilities, like getting glossary labels. It's like I'm being forced to use JetEngine widgets when Crocoblock already has dedicated plugins. The shortcode to combine dynamic fields will be really welcome.

I have heading/dynamic field combos, use custom width in 50% to get it all to line up, have to set up dynamic visibility for the heading to get the illusion of two columns of meta data products don't always have the same info: HP 10 Amp 50 Volts -- (hidden)

gentleShark commented 2 years ago

@valmirselmani Sadly, it seems Crocoblock does not even test for performance and their solution is to tell the customer it's fast enough. My chat with them today:

Vadim: Our templates do not slow down the site. Performance depends on the server and on caching

Me: I've installed the crocoblock dynamic websites in multiple environments, on hosted wordpress and on a VPS with plenty of CPU and RAM. The dynamic websites were unusably slow on hosted sites and were very slow on a powerful VPS. Even on your demo server which is likely optimized it takes 5 seconds or so for an AJAX filter request to update the results (https://demo.crocoblock.com/balirento-new/listing-grid/) and this is not filtering a lot of data. I wonder if the request would ever complete if there were 1000 records. Is there any performance/load testing you can share with me?

Vadim: Unfortunately, we do not have performance tests

Me: unfortunately, that explains why it is slow.

mateitudor commented 2 years ago

Unfortunately this is the case with many plugin developers: "works fine for me ¯_(ツ)_/¯" & then close tickets or just ignore them. Disappointed it's the case with Crocoblock.

Mrgreen93 commented 2 years ago

I believe they should focus on the performance of their plugins and improve the existing features, Not just adding features.

mindstep commented 1 year ago

I have tried wp grid builder its so fast and has better performance

Awesome, exactly what I was looking for, thanks!

Cosirax commented 1 year ago

Hey there, I really enjoy the crocblock "Univers" they have a wide functionallity but indeed.. the performance, especially for the listing grid is so poor. I have a production site setup which has now about 80 entries (not that much, normally...) who have 8 acf fields. This page is loading 16s (!) on a high performance server. Thats not usable. If there won't be an update in the close future I will be forced to change listing plugin und several pages.

Hey, Crocoblock, please, don't ignore this and put it on your top of the todo list. Do performance improvements so that we can use your plugins further.

Hopefully lookin' forward seeing some nice updates! Thanks for all the work, keep it up!

justdave007 commented 1 year ago

+1 on this request. We used this for a client site, and it is soooo slow it's basically unusable. >10s for a filter to apply and refresh. We'll have to recreate this feature, wasting a bunch of time, and this was the only reason we paid for crocoblock.

mrkoq commented 1 year ago

Same problem here - huge loading times when applying filters, from a user perspective its unusable.

Anyone got a solution or is Crocoblock working on it?

Cosirax commented 1 year ago

Same problem here - huge loading times when applying filters, from a user perspective its unusable.

Anyone got a solution or is Crocoblock working on it?

It doesn't feel like they are working on it since this thread began in july. If you need working, fast filters give wp gridbuilder a try. I've switched to this plugin because it's quite fast even on listings with more than 200 posts

Mrgreen93 commented 1 year ago

Hi @Cosirax, i think mjhead said that they are working on it But is wp grid builder adaptable with JetEngine? Thank you

gentleShark commented 1 year ago

Hi @Cosirax, i think mjhead said that they are working on it But is wp grid builder adaptable with JetEngine? Thank you

I contacted WP Grid Builder and they said their filters work with Jet Engine custom post types. Haven't tried it yet though. Let us know how it goes.

Mrgreen93 commented 1 year ago

Thanks hope they support it as well By the way crocoblock should focus on the performance of their main plugins like JetEngine and JSF We trusted them so if their plugin be bloated or slow, we don't feel good experience

dburke-ux commented 1 year ago

I reached out the WPGridBuilder support to ask about compatibility with JetEngine. Their response:

WP Grid Builder is compatible with any (custom) post type. In order to make it work the custom post type must be publicly queriable and searchable. However, there isn't any integration for custom fields created with Jet Engine. It means that if you use a custom field that store an array/object it will not work. It will only work with simple field that stores text/number.

So, while basic support is there, the lack of support for arrays probably means you won't be able to do anything too fancy

Mrgreen93 commented 1 year ago

Hi @MjHead When i load my sites with and without JetEngine, its a quite big difference in the sources. Actually JetEngine loads a lot on the background. Is there any plan to improve the performance?

yasinishyn commented 1 year ago

Same problem. The UI is fast, but the Ajax request takes 2-3 seconds. There is no way to cache the response on the backend side?

Joliamendi commented 1 year ago

Elementor is now in version 3.10. Is there still no news of a fix for this problem?

paraimpacto commented 1 year ago

Hi we are also experiencing very slow load times. Would be great to have some sort of solution either via caching or some sort of preloading warmup. In fact, the page header and menu don't even load first...essentially only a white page for 3 t0 15 seconds. Jet Smart is awesome, but this kind of sucks:(

hb81010 commented 1 year ago

Has anyone had any experience in Bricks with SmartFilers? Maybe it runs better there

PieterBrink commented 1 year ago

Has anyone had any experience in Bricks with SmartFilers? Maybe it runs better there

good question - doubt it - will test and revert! I am new to bricks but damn it is amazing! Sooo fast. More Bricks builder and Crocobloc - can you imagine the possibilities!

Zegklitz commented 1 year ago

+1

rentaterry commented 1 year ago

Has anyone had any experience in Bricks with SmartFilers? Maybe it runs better there

good question - doubt it - will test and revert! I am new to bricks but damn it is amazing! Sooo fast. More Bricks builder and Crocobloc - can you imagine the possibilities!

I have switched to Bricks builder after some simple testing about Listing Grid, JetSmartFilters. I couldn't believe my eyes that, by loading 100 posts per page. Same server same settings. See the result down below: 2 1

Now I am rebuilding my pretty complex site and over 40 plugins activated with Bricks and still crazily fast WITHOUT caching. Everyone who are concerning about speed and performance, stop bagging those things from Elementor. They are no hope.

PieterBrink commented 1 year ago

Amasing @rentaterry! thanks for the update!

gentleShark commented 1 year ago

Bricks Builder looks promising but to be fair, Crocoblock is not from Elementor and Elementor is not plagued with performance issues like Crocoblock. It's easy to get Elementor sites to be 100/100 on Google pagespeed tests.

On Sat, Feb 18, 2023, 10:44 AM AudioVoyeur @.***> wrote:

Amasing @rentaterry https://github.com/rentaterry! thanks for the update!

— Reply to this email directly, view it on GitHub https://github.com/Crocoblock/suggestions/issues/5639#issuecomment-1435703147, or unsubscribe https://github.com/notifications/unsubscribe-auth/AANS6TJ5ZAOBBOSFDNYAXSTWYDU7LANCNFSM53OMQK7Q . You are receiving this because you commented.Message ID: @.***>

hb81010 commented 1 year ago

I had now also only in a high-performance dev environment some listings in use, which had, however, a maximum of only 10 products, but in each case a lot of meta data and from the feeling, it was also significantly faster for me. Not much difference to the WP GridBuilder and felt by the suport of the Bricks Query Loop I could again determine an improvement.

But a 1:1 comparison I could not make yet, because my dev environment compared to my other hosting is much stronger with 16 GB RAM, 4 vCores, Nvme and 1024 MB PHP memory limit.

rentaterry commented 1 year ago

I had now also only in a high-performance dev environment some listings in use, which had, however, a maximum of only 10 products, but in each case a lot of meta data and from the feeling, it was also significantly faster for me. Not much difference to the WP GridBuilder and felt by the suport of the Bricks Query Loop I could again determine an improvement.

But a 1:1 comparison I could not make yet, because my dev environment compared to my other hosting is much stronger with 16 GB RAM, 4 vCores, Nvme and 1024 MB PHP memory limit.

That was wired. I tried 100 posts per page and loading with about 2 seconds in 2 core 4gb ram server. I used to test the Elementor environment with 16core 64bg ram. Sadly it was the same

lorikthinks commented 1 year ago

So what's the fix for this now? I have a website in production that has over 200 posts available, but it takes on average 2 whole seconds before the server responds. Is there at least a temporary fix for now?

cgraider commented 1 year ago

My client is not satisfied with this also, Crocoblock any suggestions?

lorikthinks commented 1 year ago

My client is not satisfied with this also, Crocoblock any suggestions?

Personally I switched to Gridbuilder, but it took a bit of time to set up (the cards are not very customisable). It is very fast though, so that's nice. And the filter building is also very easy.

meisterleise commented 1 year ago

I have got this problem too. Any filter: 4 sec., filter reset 7 sec. !! @Crocoblock this thread is very old. Is there any chance that this will improve at some point? Otherwise we have to switch to gruidbuilder too. :((