Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js] Image cache?
markuz
post
Post #1





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Witam,

Spotkaliście się kiedyś w js z czymś takim jak cache obrazków? Wczytuję za pomocą mojego wlasnego loadera tablicę obrazków (około 100). Problem tkwi w tym, ze za każdym odświeżeniem okna obrazki wczytuja sie od nowa i trwa to kilka sekund. Chciałbym aby wczytywały się tylko raz przy pierwszym wejsciu na strone. Aktualnie tak wygląda metoda odpowiedzialna za wczytywanie:

[JAVASCRIPT] pobierz, plaintext
  1. load: function(i) {
  2. if(i === undefined) {
  3. // $('#mp-editor-loader').show();
  4. i = 0;
  5. }
  6.  
  7. if(i > this.max) {
  8. this.onload();
  9. return false;
  10. }
  11.  
  12. if(this.images[i] === undefined) {
  13. this.load(i + 1);
  14. return false;
  15. }
  16.  
  17. var filename = this.images[i];
  18. var src = '/image/product_ons?s=' + i + '/' + filename;
  19.  
  20. if(this.isBig[i] === true) {
  21. src = '/image/product_ons?s=' + i + '/' + filename + '&b=1';
  22. }
  23.  
  24. var image = $("img[src$='" + src + "']");
  25.  
  26. if(image[0] !== undefined) {
  27. this.images[i] = image[0];
  28. this.load(i + 1);
  29. return true;
  30. }
  31.  
  32. this.images[i] = new Image();
  33. this.images[i].src = src;
  34. this.images[i].onload = function() {
  35. $m.resourcesLoader.load(i + 1);
  36. };
  37. },
[JAVASCRIPT] pobierz, plaintext


--------------------
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Jakie nagłówki HTTP zwracają te obrazki?
Go to the top of the page
+Quote Post
markuz
post
Post #3





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


HTTP/1.1 200 OK
Date: Mon, 18 Aug 2014 10:23:38 GMT
Server: Apache
X-Powered-By: PHP/5.3.3-7+squeeze17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: image/png

Zmieniłem cache w PHP na :

Cache-Control: max-age=28800

W JS bez zmian. Nadal obrazek wczytuje się bez cache.

Ten post edytował markuz 18.08.2014, 11:40:58


--------------------
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Pokaż jeszcze raz jakie nagłówki są serwowane po Twoich zmianach.
Go to the top of the page
+Quote Post
markuz
post
Post #5





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


HTTP/1.1 200 OK
Date: Mon, 18 Aug 2014 11:36:09 GMT
Server: Apache
X-Powered-By: PHP/5.3.3-7+squeeze17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: max-age=28800
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=15, max=94
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: image/png


--------------------
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Masz konflikt w nagłówkach co może prowadzić do nieprzewidzianych rezultatów. Cache-Control (HTTP 1.1) nakazuje zachować kopię w cache'u, Pragma (HTTP 1.0) nakazuje niezachowywać jej. Pozbądź się całkowicie nagłówka Pragma - obecnie wszystkie przeglądarki wspierają HTTP 1.1.

Ten post edytował Crozin 18.08.2014, 13:22:09
Go to the top of the page
+Quote Post
markuz
post
Post #7





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Nagłówek końcowy:

HTTP/1.1 200 OK
Date: Mon, 18 Aug 2014 12:31:37 GMT
Server: Apache
X-Powered-By: PHP/5.3.3-7+squeeze17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: max-age=28800
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=15, max=97
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: image/png

Dzięki! smile.gif


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 14:07