ExtraLicense - Buy, Sell, & Trade Your Licenses

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Speedy Search and Stream Results

EL PaperBoy

Well-known member
Invision Community search and stream results push out the ENTIRE CONTENT ITEM TEXT to the web page and then truncates the result with the browser via Javascript.

This leads to long page load times, snapping screen behavior when the js routines truncate the text after the page has loaded, and so on.

This plugin truncates these results BEFORE they hit your user's browsers, giving them faster load times and better engagement.

Speedy Search and Stream Results (SSSR) is a roll-up plugin that includes my free Truncate Stream Items plugin and adds on a truncate search results feature, a bit that allows you to select the number of images pushed out to stream results when the stream item is a Gallery album update (new images posted), and a setting to allow you to truncate down stream descriptions which can get ridiculously long when a user has selected many forums and so on for their custom streams. 

The IPS javascript truncate functions will still fire on these pages but with vastly less text to deal with! Plus of course, the added benefit that that text was never sent to the page in the first place... 

See the screenshot for settings.

Deeper Explanation

The bottlenecks here are: 

  • The amount of text these search and stream results push out of your server and down the internet tubes.
  • This large page size now being ingested by your end-user's browser, in addition to any other page load blocking items trying to spark up.
  • The IPS javascript truncation routines that fire AFTER the entire page has loaded.
This plugin addresses all three by limiting all the stream and search results text that those things have to deal with. Remember: the hitch is that by default the ENTIRE content item text is pushed out here, no matter how large it may be. That means ALL of that text is rendered by the browser before any javascript truncation happens.

  • Truncating this text server-side is stupid fast and easy to do. That's less for your web server to push out the door.
  • That means smaller pages for your end-user's browser to ingest  - that's a faster page load time.
  • Those javascript truncate routines have very little to do now. 
If the vast majority of the text content of your community, that's forum posts, image comments or descriptions, etc. routinely consist of a handful of lines of text - seriously, like 2, 3, 4, 5 lines or something, you won't see too much improvement here. People aren't so much discussing as they are chatting. 

If instead you have in-depth discussions, people posting paragraphs of text, Pages databases where content items are walls of text (book chapters, creative writing, subtitles, articles, and what not) this is the thing that you NEED! Any animated gif I provide would, with the appropriate content items of sufficient length in the streams, show a before where you literally see walls of text appear on the screen only to eventually snap away Thanos-style when the js truncation fires - after the page has fully loaded of course. The after gif would be faster page loading and minimal, if any screen-snap occurring from the js truncation.

FYI, I've had this stuff laying around for a few years now - I just got around to cleaning it up and piling it all together rather than the hodgepodge of plugins it was.

Notes

  • For search results I'm front running the IPS truncate function by matching up any quoted search term (exact match) or finding the first hit upon word. For the latter I've built in the ElasticSearch English stop words (which is a stupid-low number of words) to prevent hits on 'a', 'the', and so on. If you need other languages added on just yell.
  • For 1.2 I'm checking for Pages results and trimming more text from Stream results as the default stream templates for those truncate down to just two lines. This pretty much eliminates the js truncate routine from firing on those now. If you have some serious custom Pages stuff going on to the level where you have custom stream templates, just give a yell if you need this altered. 
REQUIRES PHP 7.1 or newer!

Large Latte Priced! $6 once, no renewals!
 

Terms
One buy, one site. Feel free to use on your test site if you have one of course. If you lapse on renewals so long that I tell you to buy it again that does NOT mean you now have licenses to two separate copies. All rights reserved, etc...

Thanks for the coffee!

View the full article

 
Top