aboutsummaryrefslogtreecommitdiff
path: root/lib/minz/View.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2013-11-03 19:22:59 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2013-11-04 23:31:36 +0100
commit231516f5238b6023001bed548569077c61411a4e (patch)
tree2265c174152f3bc7c0fbe49f5a776bc4ca5c3020 /lib/minz/View.php
parentb23d66ec360208cf1e1d8ee2fc3bebf25997d9fa (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-xlib/minz/View.php28
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,
);
}