{"action":"created","issue":{"url":"https://api.github.com/repos/ronan-mch/det_sker/issues/310","repository_url":"https://api.github.com/repos/ronan-mch/det_sker","labels_url":"https://api.github.com/repos/ronan-mch/det_sker/issues/310/labels{/name}","comments_url":"https://api.github.com/repos/ronan-mch/det_sker/issues/310/comments","events_url":"https://api.github.com/repos/ronan-mch/det_sker/issues/310/events","html_url":"https://github.com/ronan-mch/det_sker/issues/310","id":129744304,"number":310,"title":"http cache control on static assets","user":{"login":"ronan-mch","id":1145457,"avatar_url":"https://avatars.githubusercontent.com/u/1145457?v=3","gravatar_id":"","url":"https://api.github.com/users/ronan-mch","html_url":"https://github.com/ronan-mch","followers_url":"https://api.github.com/users/ronan-mch/followers","following_url":"https://api.github.com/users/ronan-mch/following{/other_user}","gists_url":"https://api.github.com/users/ronan-mch/gists{/gist_id}","starred_url":"https://api.github.com/users/ronan-mch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ronan-mch/subscriptions","organizations_url":"https://api.github.com/users/ronan-mch/orgs","repos_url":"https://api.github.com/users/ronan-mch/repos","events_url":"https://api.github.com/users/ronan-mch/events{/privacy}","received_events_url":"https://api.github.com/users/ronan-mch/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2016-01-29T11:51:30Z","updated_at":"2016-02-08T20:31:24Z","closed_at":null,"body":"from jon.\r\n\r\nDet kan dog godt blive meget hurtigere. På en mobil forbindelse er den største ventetid første opslag. Så selvom at der er ETags, så skal browseren stadig forbinde for at finde ud af om der er en ny version. Siden i bruger en hash på både CSS og JS, så er der ingen grund til at bruge ETags. I kan cache alt med hashes (det vil sige alt der ikke er selve html siden) i et års tid. Når i ligger en ny version op af jeres asset (.js,.css eller et billede), så skifter hash'en og browseren vil ikke bruge den cachet version.\r\n\r\nSæt følgende på alle assets (IKKE PÅ HTML):\r\n\r\nCache-Control:public, max-age=31536000 -> Sørger for at assets kan blive cachet på en proxy server (forkorter vejen fra A -> B)\r\n\r\nExpires: Sun, 29 Jan 2017 12:24:12 GMT -> Sørger for at browseren loader fra cache og ikke først spørger serveren for ny indhold\r\n\r\n\r\nLæs mere her: https://devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers#http-cache-headers\r\n\r\nHvis i implementere det kan i skære et halvt sekund af load tiden (0,577 sekunder) i mit tilfælde.\r\nDet man kan være sikker på ved en mobil forbindelse er at forbindelsen forsvinder helt. Selvom data forbindelsen er høj, lad os sige 2m/bit, så har du kun et vindue på måske et sekund og siden TCP starter langsomt, får du næsten aldrig fuld hastighed på et mobil netværk. https://en.wikipedia.org/wiki/Slow-start\r\nDet betyder at hvis jeg mister forbindelsen og browseren skal lave en If-Modified request, så kan det tage 2-5-10 sekunder før jeg får en 304 og kan se siden.\r\n\r\nhttps://devcenter.heroku.com/articles/http-caching-ruby-rails"},"comment":{"url":"https://api.github.com/repos/ronan-mch/det_sker/issues/comments/181556108","html_url":"https://github.com/ronan-mch/det_sker/issues/310#issuecomment-181556108","issue_url":"https://api.github.com/repos/ronan-mch/det_sker/issues/310","id":181556108,"user":{"login":"ronan-mch","id":1145457,"avatar_url":"https://avatars.githubusercontent.com/u/1145457?v=3","gravatar_id":"","url":"https://api.github.com/users/ronan-mch","html_url":"https://github.com/ronan-mch","followers_url":"https://api.github.com/users/ronan-mch/followers","following_url":"https://api.github.com/users/ronan-mch/following{/other_user}","gists_url":"https://api.github.com/users/ronan-mch/gists{/gist_id}","starred_url":"https://api.github.com/users/ronan-mch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ronan-mch/subscriptions","organizations_url":"https://api.github.com/users/ronan-mch/orgs","repos_url":"https://api.github.com/users/ronan-mch/repos","events_url":"https://api.github.com/users/ronan-mch/events{/privacy}","received_events_url":"https://api.github.com/users/ronan-mch/received_events","type":"User","site_admin":false},"created_at":"2016-02-08T20:31:24Z","updated_at":"2016-02-08T20:31:24Z","body":"Jeg har nu lagt ovenstående snippet i dukops nginx conf fil så der nu er far future cache expiry på:\r\n\r\n```Expires:\"Tue, 07 Feb 2017 20:16:16 GMT\"```\r\n\r\nDen regel gælder vist ikke for brugerenes billeder da de ligger i en anden mappe, burde den ikke også det?\r\n\r\nJeg har også opdaget at der var en fejl i den måde jeg kompileret assets på - hvis man ikke sætter `RAILS_ENV=production` foran kommandoen så bliver de kun concatenated og ikke minified. Jeg har lavet det igen og så er de blevet mindre:\r\n\r\n```\r\ncss 354.68kb -> 137.56kb\r\njs 558.99kb -> 253.17kb\r\n```\r\nHvad skal det næste være? "}}