gobezu / jbetolo Goto Github PK
View Code? Open in Web Editor NEWJoomla! front end performance optimization with support for CDNs
Joomla! front end performance optimization with support for CDNs
What does this option mean? What will be excluded?
while developing one might use localhost and get merged files as such with relative urls mangled away to have absolute urls
if now the merging was done while calling site from localhost the merged files would fail to serve images when called from the ip number of the machine or some other options
solution: use only relative urls for images or any other linked resource
Hi,
im using the compressing component jbetolo togehter with Jtouch . Jtouch is a component to mobilize your site.
In the jbetolo configuration i set "Exclude Mobile Version" on "Yes".
But still jbetolo is compressing the Jtouch Files (CSS and JS). That causes problems.
I checked the plugin position. The jbetolo System Plugin loads before the Jtouch System JTouch Mobile Controller Plugin, but same result.
Here the link to the mobile Version:
http://www.versandkostenfrei-bestellen24.de/index.php?jtpl=14
How can i skip jbetolo for the Jtouch mobile Version. The problem is, the URL for the mobile and desktop version are the same.
Hope you guys have any ideas.
kind regards
Excellent example is http://extensions.joomla.org/extensions/core-enhancements/performance/mootools/22236
after fixing error #12 i noticed another problem arising with css files.
referenced images in a css file cannot be found after htaccess directory rewriting enabled
so if in a css file that gets merged is a image file path of 'templates/mytemplate/images/toolbar.png' the browser assumes the file to be found in /cache/jbetolo/templates/mytemplate/images/toolbar.png' since the pathes are not fixed by jbetolo correctly with htaccess mode is enabled.
Optional 2 loads with first load where libraries such as mootools and jquery are included and another with the rest.
Some background reading : www.stevesouders.com/blog/2012/10/11/cache-is-king/
This might be also a good idea for other libraries.
Interesting read:
http://encosia.com/3-reasons-why-you-should-let-google-host-jquery-for-you/
Especially caching might be a good reason, since the JQuery library then might have already been loaded from a visit to another website that uses the same approach anyway.
Another quite useful javascript plugin for joomla offers this: InterExt - http://extensions.joomla.org/extensions/core-enhancements/performance/scripts-optimization/18499 . But jbetolo and InterExt combined don't always work fine.
in helper.php in the allowRewrite function the wrong file is being referred to:
the script needs to be changed from
$src = dirname(FILE). '/assets/.htaccess_' . $task;
to
$src = dirname(FILE). '/assets/htaccess_' . $task .'.txt';
Hello! When I run a benchmark or activate jbetolo in a high traffic website, and jbetolo was not "compiled" yet, all the active httpd processes invoke jbetolo scripts and the server become very slow.
I think that it's necessary to run jbetolo compression scripts only ONCE, and only by the first request that invoked it. The following requests should detect that it is still being executed and do not invoke it.
Hi,
I have use com_jbetelo when I enable component css linked images not display because of chnage css location how can i solve my problem
I would like to suggest a feature that seams to be missing. I would like to be able to use Google’s AJAX Libraries API to serve most common Javascript files as jquery and mootools, and be able to rename them as needed.
Ad example the extention "Google Ajax Library " is able to pull from google's servers the mootool file (I can also specify the version) and most importantly is able to rename it (in my site I needed to be "mootools-core.js").
Example: http://www.fileden.com/files/2006/7/20/138438/Altro/17-05-2013 14-24-20.jpg
Google Ajax Library Extension:
http://extensions.joomla.org/extensions/core-enhancements/performance/content-networking/6981
It would be great to add a feature similar to the Joomla extension "JS CSS Control". Right now I use it along with Jbetolo but it would be a nice feature to include with Jbetolo as it would give more control over the js and css in one place.
JS CSS Control only lets you exclude js/css globally or by page which is great but it would also be better if the same could be done to include files by page or globally.
When enabling the plugin all works as it should... but after some time (like after x hours) the responsive behavior changes??
The first image shows the same site refreshed after 2h... works if I clear the joomla cache (second image)..
I use it on www.homeofsweden.se if you want to check it out.
(using the template "afterburner" from rockettheme)
Excellent work, love it.
It would be interesting for future versions to add the path to the cache and to change the file name generated in the cache.
ability to turn css and js processing resp. on / off instead of doing it for each sub function of each content type
As google suggest:
Minimizing HTTP redirects from one URL to another cuts out additional RTTs and wait time for users.
What's google says it's not so important. But true reason is that: For example, static compression from Warp6/Widgetkit and others, is directly to cached files. Whole content of css is inside linked files.
In real world, For example: Google Chrome FLASH white page on during pages switch.
I think the effect is caused by redirections. Files are not serving directly inside CSS or JS files. All it destroy feeling like page is FAST even if page is highly simple and optimized.
When disable jbetolo, left page without any merge and compression. Raw files load at first longer. But when you navigate on site you don't feel it's weight. Because everything is cached and browser don't download them again. So pages can switch without even 1ms of white page feeling.
So BIG ASK is for option caching files without redirects. Without it all jbetolo job are a little bit pointless for me.
On http://jproven.com site you use CDN and this effect does not appear. But we talk about regular site without CDN.
In other words get rid off reflows like:
index.php?option=com_jbetolo&task=serve&cfile=1_970321:34:0
Thank you.
Hi,
when activated, the calls to tinymce files return 404 because of the path wich is not correct inside the merged file.
exemple:
GET http://127.0.0.1/*****/questions-reponses/view//plugins/searchreplace/editor_plugin.js 404 (Not Found)
43c9c84c556a2493421a270679c176be.js:2444 Failed to load: http://127.0.0.1/******/questions-reponses/view//plugins/searchreplace/editor_plugin.js
i have that kind of error for each plugin of tynimce
Currently the defer attribute can be added but it would be nice to load the merged js file with async
When you add scripts to the bottom of the page they get downloaded after the page is rendered, but they still block the parsing and prevent the dom from being ready. Since in my application before I can present the page to the user I need to manipulate the dom, moving the scripts to the bottom make no viewable speed difference. Having the ability to add an async or defer attributes to scripts would solve my problem.
If you can even direct me to jbe code that is responsible for adding scripts, that would be helpful, so that I can try making the change myself.
The Placement of inline JavaScript works regardless of whether I choose to merge JS or not.
However, the Placement of external JavaScript files only works when I choose to merge JS.
Is it possible to configure the plugin to have the external JS files at the bottom of the page without merging or renaming them? I can achieve this by changing your source code only. If it is not yet possible by any configuration workaround, it would be great if this was a future improvement.
when i access a site with jbetelo from another url than the default one, the following message is shown
Notice: Undefined index: attr in XYZ/plugins/system/jbetolo/jbetolo/helper.php(721) : runtime-created function on line 1
let's assume my site runs joomla on www.example.com .
when accessing the site via http://www.example.com everything is fine. When i put http://example.com (without www) in the browser, jbetolo shows this notice
have tested this both from a local test machine and a live server.
my config (local test machine) taken from mysql
{"allow_in":"site","htaccess":"1","html_minify":"0","dont_stat":"0","predefined_settings":"-1","css_merge_mode":"resource","css_merge":"1","css_merge_exclude":"","css_include":"","css_minify":"1","css_minify_excluded":"1","css_gzip":"1","css_gzip_excluded":"0","css_custom_order":"template.css","css_compress_resources":"eot,ttf,svg,otf","css_datauri_allow_in":"administrator","css_datauri":"png,jpg","css_datauri_files":"","css_datauri_max":"25000","js_merge_mode":"mono","js_merge":"1","js_merge_exclude":"/warp/js/searchr.js","js_include":"","js_minify":"0","js_minify_excluded":"0","js_gzip":"0","js_gzip_excluded":"0","js_custom_order":"","js_external_custom_order_before":"","js_external_custom_order_after":"","js_jquery_no_conflict":"1","js_jquery":"jquery-1.7.2.min.js","js_placement":"4","js_move_inline":"4","js_inline_dont_move":"","add_local_jquery":"1","skip_dynamic":"1","gzip_exclude":"","minify_exclude":"","delete":"/markitup/jquery.pack.js,media/widgetkit/js/jquery.js,styleswitcher.js,/media/k2/assets/js/jquery-1.7.1.min.js","exclude_components":"","exclude_urls":"","cdn_enabled":"0","cdn_type":"pullown","cdn_domain":"cdn.domain.com","cdn_compress":"0","cdn_own_folder":"cdn","cdn_domain_images":"","cdn_types_images":"png,jpg,gif","cdn_domain_movies":"","cdn_types_movies":"flv,mov,avi","cdn_domain_docs":"","cdn_types_docs":"doc,docx,xls,rtf,pdf,txt","cdn_domain_css":"","cdn_types_css":"1","cdn_domain_js":"","cdn_types_js":"1","cdn_merged":"1","cdn_types_exclude":"","cdn_exclude_components":"","lazyload_img":"0","lazyload_exclude":"","cache_age":"5184000","listen_request":"0","debug_mode":"1","debug_mode_filename":"0","profile":"none","files":null}
As per title, it would be nice to have a way to move scripts in the selected area, and have a list of excluded files to either leave them where they are or move them to another section.
I have problems leaving modernizr.js where it is right at the end of the <head>
, it's getting always moved at the bottom along with other scripts. Is it possible to implement this feature or I'm blatantly missing something? Thank you!
Once cache has been rendered for the page fix the cache from there and on and until cache is emptied or cache expiration time is reached. This can be very useful for sites we know are relatively static.
Idea courtesy of Mickey
"support for caching a joined version of CSS files per user agent"
I get this error when going to
http://localhost:8080/administrator/index.php?option=com_jbetolo&task=ping
SQL=SELECT , link, FROM swoff_menu WHERE published = 1
Hello
I'm looking for a plugi that disable mootols and mootools-more in a Joomla 3 with Gantry based template. Does it your plugin?
Regards
Hey, can you show any example of URL exclude with regular expression?
Currently there is a very nice option to move all the JS at the bottom and blocking the rendering because of it.
If you can simply make this option available for the css as well, it will be great.
In the administrator page of the module : tools, css, javascript, ... are all in the same tab
such inline js that shouldn't be moved are those that directly manipulate there DOM in place and therefore there position affects there outcome, google ad...
as you know most browsers allow up to 6 concurrent requests per domain. right now you provide a way for user to specify main cdn, and an image cdn. and this is good, but in a typical joomla site, after jbetolo has finished running, there will be only one js, only one css, and about forty images. So the main cdn will take only two requests and the image cdn will take 40 requests. This is not efficient, 40 requests to one domain with only 6 allowed at a time is going to slow the site down. to take full advantage of multiple cdn domains the plugin needs to achieve a better balance.
so my proposed solution is: add "main cdn domain 2", "main cdn domain 3", "main cdn domain 4" params to the plugin. If they are filled out (and for simplicity lets assume there is no image domain provided) then the plugin will spread everything among main domains evenly, regardless of the type of the resource. so in the case above with 40 images, if user specified 2 cdns you would want 20 requests going to first and 20 going to second, if user specified 4 domains than it would be about 10 requests per domain. Next question is how can you ensure even distribution. One way to go about this is to determine the cdn to be used for each url based on the hash code code of the url - i.e. $cdn = $cdns[getHashCode($url) % count($cdns)]. this is called domain sharding, please read more here http://developer.yahoo.com/performance/rules.html#split . I am not sure if providing a way for user to provide different cdn for image is of much value, maybe you have use cases in mind, I leave that up to you.
rather operates on file types only and is reported by user that when png,jpg only specified even gif is mapped to the image cdn
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.