From 7a49346f8069d814c51af2e0cefcc6e66fe9826e Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Fri, 22 Apr 2016 21:17:53 +0200 Subject: Multiple updates with async demo. --- include/classes/BigPipe/BigPipe.php | 26 ++++++++--------- include/classes/BigPipe/Pagelet.php | 56 ++++++++++++++++++------------------- include/functions.php | 22 +++++++-------- 3 files changed, 52 insertions(+), 52 deletions(-) (limited to 'include') diff --git a/include/classes/BigPipe/BigPipe.php b/include/classes/BigPipe/BigPipe.php index 740d047..63cb711 100755 --- a/include/classes/BigPipe/BigPipe.php +++ b/include/classes/BigPipe/BigPipe.php @@ -7,31 +7,31 @@ class BigPipe { private static $pagelets = []; private static $count = 0; - #==================================================================================================== + #=============================================================================== # Return TRUE if the pipeline is enabled - #==================================================================================================== + #=============================================================================== public static function isEnabled() { return self::$enabled; } - #==================================================================================================== + #=============================================================================== # Enable or disable the pipeline mode - #==================================================================================================== + #=============================================================================== public static function enablePipeline($enabled = TRUE) { return self::$enabled = (bool) $enabled; } - #==================================================================================================== + #=============================================================================== # Add a new pagelet to pipeline - #==================================================================================================== + #=============================================================================== public static function addPagelet(Pagelet $Pagelet, $priority) { self::$pagelets[$priority][] = $Pagelet; return ++self::$count; } - #==================================================================================================== + #=============================================================================== # Prints a single pagelet response - #==================================================================================================== + #=============================================================================== private static function singleResponse(Pagelet $Pagelet, $last = FALSE) { $data = [ 'ID' => $Pagelet->getID(), @@ -47,19 +47,19 @@ class BigPipe { $pageletJSON = json_encode($data, (self::$debug ? JSON_PRETTY_PRINT : FALSE)); echo "getID()}\">\n"; - echo "\n\n"; + echo "\n\n"; } - #==================================================================================================== + #=============================================================================== # Sends output buffer so far as possible towards user - #==================================================================================================== + #=============================================================================== public static function flushOutputBuffer() { ob_flush(); flush(); } - #==================================================================================================== + #=============================================================================== # Render the pagelets - #==================================================================================================== + #=============================================================================== public static function render() { self::flushOutputBuffer(); diff --git a/include/classes/BigPipe/Pagelet.php b/include/classes/BigPipe/Pagelet.php index 3b5530c..3a6c64e 100755 --- a/include/classes/BigPipe/Pagelet.php +++ b/include/classes/BigPipe/Pagelet.php @@ -10,18 +10,18 @@ class Pagelet { private $phaseDoneJS = []; private static $count = 0; - #==================================================================================================== + #=============================================================================== # Priorities for sorting the pagelets - #==================================================================================================== + #=============================================================================== const PRIORITY_HIGHEST = 100; const PRIORITY_HIGH = 75; const PRIORITY_NORMAL = 50; const PRIORITY_LOW = 25; const PRIORITY_LOWEST = 0; - #==================================================================================================== + #=============================================================================== # Callback phase numbers for PhaseDoneJS - #==================================================================================================== + #=============================================================================== const PHASE_ARRIVE = 0; # After the pagelet reached BigPipe const PHASE_LOADCSS = 1; # After all the CSS resources have been loaded const PHASE_PUTHTML = 2; # After the HTML content has been injected into the placeholders @@ -35,86 +35,86 @@ class Pagelet { BigPipe::addPagelet($this, $priority); } - #==================================================================================================== + #=============================================================================== # Return the unique ID - #==================================================================================================== + #=============================================================================== public function getID() { return $this->ID; } - #==================================================================================================== + #=============================================================================== # Return the HTML content - #==================================================================================================== + #=============================================================================== public function getHTML() { return $this->HTML; } - #==================================================================================================== + #=============================================================================== # Return the CSS resources - #==================================================================================================== + #=============================================================================== public function getCSSFiles() { return $this->CSSFiles; } - #==================================================================================================== + #=============================================================================== # Return the JS resources - #==================================================================================================== + #=============================================================================== public function getJSFiles() { return $this->JSFiles; } - #==================================================================================================== + #=============================================================================== # Return the main JS code - #==================================================================================================== + #=============================================================================== public function getJSCode() { return $this->JSCode; } - #==================================================================================================== + #=============================================================================== # Add HTML or attach more - #==================================================================================================== + #=============================================================================== public function addHTML($HTML) { return $this->HTML .= $HTML; } - #==================================================================================================== + #=============================================================================== # Attach a CSS resource - #==================================================================================================== + #=============================================================================== public function addCSS($file) { return $this->CSSFiles[] = $file; } - #==================================================================================================== + #=============================================================================== # Attach a JS resource - #==================================================================================================== + #=============================================================================== public function addJS($file) { return $this->JSFiles[] = $file; } - #==================================================================================================== + #=============================================================================== # Add JS code or attach more - #==================================================================================================== + #=============================================================================== public function addJSCode($code) { return $this->JSCode .= $code; } - #==================================================================================================== + #=============================================================================== # Attach a PhaseDoneJS callback - #==================================================================================================== + #=============================================================================== public function addPhaseDoneJS($phase, $callback) { return $this->phaseDoneJS[$phase][] = removeLineBreaksAndTabs($callback); } - #==================================================================================================== + #=============================================================================== # Return all registered PhaseDoneJS callbacks - #==================================================================================================== + #=============================================================================== public function getPhaseDoneJS() { return $this->phaseDoneJS; } - #==================================================================================================== + #=============================================================================== # Magic method: __toString() - #==================================================================================================== + #=============================================================================== public function __toString() { return '
'.((!BigPipe::isEnabled()) ? $this->getHTML() : NULL).'
'; } diff --git a/include/functions.php b/include/functions.php index 21eb3f0..d06823d 100755 --- a/include/functions.php +++ b/include/functions.php @@ -1,12 +1,12 @@ - \ No newline at end of file -- cgit v1.2.3