Newsgroups: php.general,php.internals Path: news.php.net Xref: news.php.net php.general:325698 php.internals:95470 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 51707 invoked from network); 28 Aug 2016 00:46:35 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 28 Aug 2016 00:46:35 -0000 Authentication-Results: pb1.pair.com smtp.mail=azizsaleh@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=azizsaleh@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.216.179 as permitted sender) X-PHP-List-Original-Sender: azizsaleh@gmail.com X-Host-Fingerprint: 209.85.216.179 mail-qt0-f179.google.com Received: from [209.85.216.179] ([209.85.216.179:35030] helo=mail-qt0-f179.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id BA/9B-34481-76432C75 for ; Sat, 27 Aug 2016 20:46:33 -0400 Received: by mail-qt0-f179.google.com with SMTP id 93so54326187qtg.2; Sat, 27 Aug 2016 17:46:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=jpR1lh/aWeKODEaDtjY0/XQas/bSeb5sGPivXF3MRmc=; b=xvYshk3zYb6dkSrhd7wHtEjPS41xfZKZ8j1EMTX6a3CA44GaqK/iClu4OiBTxxVHwH HZXnJAPAwCJB89eHz7VobUStMaG1OW1TyEP+sAUKw0bY9rll9N3ywDqUE1h9xMFB+9Ir y9jdT/7+HRdr8Zr9eea+3gTLtbRsRZFrgy4U9t3+0FtO+rtVj8FqwgDE2Mc4KCGTCEZI HRENZR3CqWO9+cjo6+rkM3zVr5Cg/VyIIGcctVpM1GvlbMBKA8WdK0C/oXRY4iT2ZKVt MgsNz8Rb0qtoGRtyfGGC0IfJfpTdc4LOFDwFcwoHyrCDW4NEHdSooPhN0VGK8ENq2drL MGvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=jpR1lh/aWeKODEaDtjY0/XQas/bSeb5sGPivXF3MRmc=; b=DpM7K1R8csAWLFctNmQxUgYSQzErl8DNLCFEJF1SAUiZ4zFWL+5qcGI62a8C0wLRbT tsg809NgCUbIM56pre2QyaF2YGOyWztOsO4P+bTn2k2Ry/aNe7OkjD1s0novdd3pYOER P4D1T1qJRPPrUvFdGONCo8uy+LTxeS9467pIwwl/xM0zDipKVaiaJtUJe9ISgsO4tq/q XxdihNQDdEPwnMLGcFROAx88PEQ4F220YUwxv65jTc9eju3LszJo9lHesVqzf5XwSGSG LB7EHugMgUtFxUBU3cJMp4ZsN9pcYc2yMsk7XbY37vbBBKMNFX0VJpsdTaj4o+N250tA P4EA== X-Gm-Message-State: AE9vXwNQmhvmOtwqO0NOqZtCtfhdCPKmK1lW/VBsGXJLWwLaSgBz722Tn3OaF7BHFTN5bR2ZABgo4EvzeWrehg== X-Received: by 10.200.51.101 with SMTP id u34mr11185011qta.54.1472345189192; Sat, 27 Aug 2016 17:46:29 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.55.40 with HTTP; Sat, 27 Aug 2016 17:45:48 -0700 (PDT) In-Reply-To: References: <5E615A59-AC2B-455F-9438-D295419F3767@ashleysheridan.co.uk> <33E6F0A8-A14B-4590-A18C-FF6D6E029D0A@gmail.com> <3B285FFA-4C62-421D-A5B5-E5F205C53C02@gmail.com> Date: Sat, 27 Aug 2016 20:45:48 -0400 Message-ID: To: Ashley Sheridan Cc: Rene Veerman , Joshua Kehn , "php-general@lists.php.net" , internals@lists.php.net Content-Type: multipart/alternative; boundary=001a1137cfd2fd1dd6053b1713aa Subject: Re: [PHP] feature request : gzip caching From: azizsaleh@gmail.com (Aziz Saleh) --001a1137cfd2fd1dd6053b1713aa Content-Type: text/plain; charset=UTF-8 On Sat, Aug 27, 2016 at 8:37 PM, Ashley Sheridan wrote: > > > On 28 August 2016 01:31:50 BST, Rene Veerman gmail.com> wrote: > >On Sat, Aug 27, 2016 at 9:36 PM, Joshua Kehn > >wrote: > > > >> Apache handles gzipping just fine. http://httpd.apache.org/ > >> docs/current/mod/mod_deflate.html > >> > >> and my PHP handles static file serving only when needed, when > >evaluating > >> content and js for specific URLs > >> > >> > >> I'm not sure why that would be required. Why doesn't the HTML > >reference > >> the assets required directly? > >> > > > > > >that would result in *way* too many HTTP requests dude ;) > > > You're doing it wrong > > >i'm thinking i evaluate what URL is called up in PHP, figure out what > >cache > What's wrong with front end evaluating what js it needs to request, like > angular or react does? > >files are needed (i now use multiple stages of cache files for some > >stuff > >like the main HTML template), and output a new "master cache file" that > >is > >a file that gets called up rather quickly with readfile() after a > >file_exists(translateURLtoFilesystempath($untranslatedContentURL)) to > >see > >if regeneration for any particular URL is needed.. > > > >public function translateURLtoFilesystempath ($url) { > > $r = $url; > > $r = str_replace('/','---',$r); > > $r = str_replace('?','-_-',$r); > > $r = str_replace('&','__-',$r); > > $r = str_replace('=','___',$r); > > return '--_'.$r; > >} > >public function translateFilesystempathToURL ($path) { > > $r = preg_replace ('#.*--_#', '', $path); > > $r = str_replace('---','/',$r); > > $r = str_replace('-_-','?',$r); > > $r = str_replace('__-','&',$r); > > $r = str_replace('___','=',$r); > > return $r; > >} > > > > > > > > > >> > >> and for noobish developers it might be very convenient to add this to > >php > >> readfile() afterall > >> > >> > >> Convenient and right are often two different ways to solve a problem. > >I > >> try to not offer convenient solutions that are not right. > >> > > > >yea, that's the C++ attitude ;) you do know C++ got dinosaured for a > >*more > >simple and intuitive* C# right? ;) > > That's not what happened at all. C++ is alive and well, C# has always > served a different purpose > > > > >> > >> --jk > >> > >> On Aug 27, 2016, at 3:04 PM, Rene Veerman >> gmail.com> wrote: > >> > >> yea ok.. "something upstream".. is that nginx easy to stack above / > >next > >> to / under apache2? i'm really used to apache2.. > >> and for noobish developers it might be very convenient to add this to > >php > >> readfile() afterall.. > >> > >> and my PHP handles static file serving only when needed, when > >evaluating > >> content and js for specific URLs to fit in a common HTML site > >template for > >> instance.. > >> you know of a better way? i'm all ears :) > >> > >> On Sat, Aug 27, 2016 at 9:00 PM, Joshua Kehn > >wrote: > >> > >>> Why is PHP handling static file serving? This is squarely outside of > >it's > >>> domain. Have nginx or something upstream handle gzipping content. > >>> > >>> --jk > >>> > >>> > On Aug 27, 2016, at 1:22 PM, Rene Veerman < > >>> rene.veerman.netherlands@gmail.com> wrote: > >>> > > >>> > eh no, i'm a big fan of caching output in js / json cache files :) > >>> > but those still need to get gzipped... not just my main JS file, > >also my > >>> > photoalbum contents -> another 1Mb of JSON content... > >>> > > >>> > On Sat, Aug 27, 2016 at 7:19 PM, Ashley Sheridan < > >>> ash@ashleysheridan.co.uk> > >>> > wrote: > >>> > > >>> >> > >>> >> > >>> >> On 27 August 2016 17:52:48 BST, Rene Veerman > > >>> >> gmail.com> wrote: > >>> >>> Hi.. > >>> >>> > >>> >>> First off, i love PHP. Many thanks for keeping it free too. > >>> >>> > >>> >>> However, i've noticed that gzipping the 1Mb of javascript that > >my > >>> >>> seductiveapps.com needs, takes a relatively long time (measured > >over > >>> a > >>> >>> total page load time which i'd like to bring down from it's > >current 10 > >>> >>> seconds, about a second or even more is spent gzipping (by a > >core i5 > >>> >>> machine)).. > >>> >> > >>> >> Are you building the js each time it's requested? Have you > >thought > >>> about > >>> >> building it as a deployment step for production? > >>> >> > >>> >>> > >>> >>> At one time, i spent time building PHP code that cached the > >>> >>> already-gzipped > >>> >>> content and outputted that with just readfile().. But i never > >got it > >>> to > >>> >>> work a second time, unfortunately.. > >>> >> Why don't you want the web server to handle the gzip side of > >things? It > >>> >> would make more sense surely? > >>> >> > >>> >>> Could you pretty please add this to the core of PHP? Shouldn't > >be that > >>> >>> hard > >>> >>> for the internals team right?.. > >>> >>> > >>> >>> Many thanks in advance for even considering to do this.. > >>> >>> > >>> >>> with regards, > >>> >>> Rene Veerman, > >>> >>> CEO + CTO of seductiveapps.com > >>> >> > >>> >> -- > >>> >> Sent from my Android device with K-9 Mail. Please excuse my > >brevity. > >>> >> > >>> > >> > >> > > -- > Sent from my Android device with K-9 Mail. Please excuse my brevity. > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > Combine all of your JS to 1 file, minimize it and then serve it. After initial load it should be fine. That is how most systems I worked on with it and works fine. The browser won't have to download it multiple times (depending on user settings). 1MB of javascript is huuuuuge, I don't want to say you are doing it wrong, but something is going on. jQuery library itself is just 85kb compressed. As a developer, the way I do it is make sure that my architecture design is correct (which language/systems/etc.. to use). Once that is done for my purpose, the language usually doesn't matter. --001a1137cfd2fd1dd6053b1713aa--