diff options
| author | 2013-11-03 19:22:59 +0100 | |
|---|---|---|
| committer | 2013-11-04 23:31:36 +0100 | |
| commit | 231516f5238b6023001bed548569077c61411a4e (patch) | |
| tree | 2265c174152f3bc7c0fbe49f5a776bc4ca5c3020 /lib/minz/View.php | |
| parent | b23d66ec360208cf1e1d8ee2fc3bebf25997d9fa (diff) | |
Grosse optimisation JavaScript
* Fusion de endless_mode.js dans main.js car endless_mode.js est
toujours chargé et assez petit.
* Suppression des changements de style en JavaScript lors du chargement
(genre boucle de .hide(), ou d'ajout de classe ".stick") et
implémentation en PHP + CSS à la place.
* Chargement JavaScript asynchrone (defer + async) pour de meilleurs
performances.
* Utilisation préférable des événements globaux plutôt que des
événements pour chaque élément avec jQuery.on(events, selector) pour un
chargement plus rapide et moins de mémoire utilisée.
* Optimisation manuelle du JavaScript (sélecteurs CSS plus performants,
méthodes jQuery plus appropriées, etc.).
* Désactivation de init_img() qui était coûteux, lancé à un moment où
les images ne sont de toute manière pas encore chargées, et qui
n'apporte rien car il y a déjà un img {max-width:100%} en CSS.
* JavaScript en mode strict.
* Enfin, passage du code JavaScript dans JSLint et du coup nombreuses
corrections (syntaxe, variables, méthodes dépréciées...).
* Devrait permettre de fermer
https://github.com/marienfressinaud/FreshRSS/issues/121
* Au passage, quelques simplifications CSS pour de meilleures
performances.
Diffstat (limited to 'lib/minz/View.php')
| -rwxr-xr-x | lib/minz/View.php | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/lib/minz/View.php b/lib/minz/View.php index 1bfa0a61f..fd92762b3 100755 --- a/lib/minz/View.php +++ b/lib/minz/View.php @@ -150,9 +150,8 @@ class View { $styles .= '<!--[if ' . $cond . ']>'; } - $styles .= '<link rel="stylesheet" type="text/css"'; - $styles .= ' media="' . $style['media'] . '"'; - $styles .= ' href="' . $style['url'] . '" />'; + $styles .= '<link rel="stylesheet" media="' . $style['media'] + . '" href="' . $style['url'] . '" />'; if ($cond) { $styles .= '<![endif]-->'; @@ -190,9 +189,14 @@ class View { $scripts .= '<!--[if ' . $cond . ']>'; } - $scripts .= '<script type="text/javascript"'; - $scripts .= ' src="' . $script['url'] . '">'; - $scripts .= '</script>'; + $scripts .= '<script src="' . $script['url'] . '"'; + if ($script['defer']) { + $scripts .= ' defer="defer"'; + } + if ($script['async']) { + $scripts .= ' async="async"'; + } + $scripts .= '></script>'; if ($cond) { $scripts .= '<![endif]-->'; @@ -203,16 +207,20 @@ class View { return $scripts; } - public static function prependScript ($url, $cond = false) { + public static function prependScript ($url, $cond = false, $defer = true, $async = true) { array_unshift(self::$scripts, array ( 'url' => $url, - 'cond' => $cond + 'cond' => $cond, + 'defer' => $defer, + 'async' => $async, )); } - public static function appendScript ($url, $cond = false) { + public static function appendScript ($url, $cond = false, $defer = true, $async = true) { self::$scripts[] = array ( 'url' => $url, - 'cond' => $cond + 'cond' => $cond, + 'defer' => $defer, + 'async' => $async, ); } |
