Safari iOS 6 caching $ .ajax nəticələri var?

Biz iOS 6-a yüksəldildikdən sonra, biz Safari web tarama $.ajax zəngləri önbelleğe $.ajax imkan verir. Bu PhoneGap tətbiqinin kontekstindədir, buna görə Safari WebView istifadə edir. $.ajax üçün edilən çağırışlarımız POST $.ajax və önbelleği yalana {cache:false} , lakin hələ də olur. Əlavə olaraq başlıqlarda bir TimeStamp əlavə etməyə çalışdıq, amma bu kömək etmədi.

Daha çox araşdırma etdik və Safari'nin statik bir funksiyanı imzalamış və çağırış çağrısından dəyişməyəcəyi veb xidmətləri üçün yalnız önlənmiş nəticələr verdiyini tapdıq. Məsələn, bir funksiyanı təsəvvür edin:

 getNewRecordID(intRecordType) 

Bu funksiya təkrar daxil eyni giriş parametrlərinə daxil olur, lakin qaytarılan məlumatlar hər dəfə fərqli olmalıdır.

Apple'ın iOS 6 sürət qutusuna getmək üçün tələsik olmaları, cache parametrləri ilə çox xoşbəxt olduqları üçün. İOS 6-da bu davranışı hər kəs gördü? Əgər belədirsə, tam olaraq bunun səbəbi nədir?


Biz tapdığımız müvəqqəti həll bu funksiyanı imzalamaq idi:

 getNewRecordID(intRecordType, strTimestamp) 

sonra da həmişə TimeStamp parametresini keçir və sadəcə bu dəyəri server tərəfinə buraxın. Bu problem ətrafında işləyir. Ümid edirəm ki, mənim kimi bu suala 15 saat sərf edən başqa bir kasıb ruha kömək edir!

1001
20 сент. Sep 20 ilə user1684978 tərəfindən təyin olundu 2012-09-20 09:07 '12 at 9:07 2012-09-20 09:07
@ 25 cavab

Bir az araşdırmadan sonra, iOS6-da Safari heç bir Cache-Control başlığı olmayan və ya "Cache-Control: max-age = 0" olan POST'i önbelleğe alacaq.

Xidmət çağırışlarının sonunda təsadüfi sorgulama şeritlərini çatdırmaq yerinə deyil, bu önbellemenin qlobal səviyyədə qarşısının alınmasının yeganə yolu "Cache-Control: no-cache" qurmaqdır.

Beləliklə:

  • Heç bir önbellek yoxlama və ya başlıq sona çatır = iOS6 Safari önbelleğe alır
  • Cache-Control max-age = 0 və Immediate Expires = iOS6 Safari önbelleğe alır
  • Cache-Control: no-cache = iOS6 Safari önbelleğe alınmayacaq

Şübhə edirəm ki, Apple bu barədə HTTP spesifikasiyasından POST haqqında 9.5-də istifadə edir:

Cavab müvafiq Cache-Control və ya Expires başlıq sahələrini əhatə etmədikdə bu metodun cavabı önlənə bilməz. Lakin, cavab 303 (baxın digər) istifadəçi agentini resursu önbelleğe almaq üçün yönlendirmek üçün istifadə edilə bilər.

Beləliklə, teorik olaraq POST cavablarını öncə saxlaya bilərik. Amma heç bir brauzer bu günə qədər yaxşı bir fikir ola bilməzdi. Cache-Control və ya Expires başlıqları yalnız hər hansı bir dəstə olmadıqda müəyyən edilmədikdə, bu, önbelleklemeyi nəzərə almır. Beləliklə, bu, səhv olmalıdır.

Aşağıda, Apache konfiqurimin düzgün hissəsindəki bütün API'ımın məqsədini istifadə edirəm, çünki bu baş verdiyindən, əslində bir şeyi önləmək istəmirəm, hətta onu əldə edirəm. Bunu yalnız POST üçün necə quracağımı bilmirəm.

 Header set Cache-Control "no-cache" 

Yeniləmə. Yalnız POST'un eyni olacağını yalnız qeyd etdiyini fərq etdim, belə ki hər hansı bir POST məlumatını və ya URL'sini dəyişdirin və yaxşısınız. Beləliklə, başqa yerlərdə göstərildiyi kimi, sadəcə URL və ya bəzi POST məlumatlarına təsadüfi məlumatlar əlavə edə bilərsiniz.

Yeniləmə: Siz "Apache-də istəsəniz" POST-ə "yox-önbellek"

 SetEnvIf Request_Method "POST" IS_POST Header set Cache-Control "no-cache" env=IS_POST 
430
20 сент. Cavab Kieran 20 Sentyabr verilir. 2012-09-20 19:06 '12 at 7:06 pm 2012-09-20 19:06

Ümid edirəm ki, bu, digər tərəfdarlar üçün divarlara qarşı başlarını vuraraq faydalı ola bilər. Aşağıdakı hərəkətlərin hər hansı birinin iOS 6-da Safari POST cavabının önbelleğinin qarşısını aldığını gördüm:

  • başlıqları tələb etmək üçün [cache-control: no-cache] əlavə edin
  • cari vaxt kimi bir URL dəyişən parametri əlavə edin
  • Cavab başlıqlarına [pragma: no-cache] əlavə edin
  • cavab başlıqlarına [cache-control: no-cache] əlavə edin

Mənim həllim Javascriptimdə idi (bütün AJAX istəklərim POST idi).

border=0
 $.ajaxSetup({ type: 'POST', headers: { "cache-control": "no-cache" } }); 

Mənim serverimin çoxlu cavablarına [pragma: no-cache] başlığı əlavə edirəm.

Yuxarıda göstərilən həll üsulunu istifadə edərkən yadda saxladığınız hər hansı bir $ .ajax () çağırışının qlobal olaraq təyin olunduqda: false, $ .ajaxSetup () 'da göstərilən parametrləri istifadə etməyəcək, belə ki, başlıqları əlavə etməlisiniz dəfə

141
12 окт. Cavab Dave 12 oct. 2012-10-12 12:56 '12 at 12:56 2012-10-12 12:56

JQuery istifadə edərkən bütün web xidmət tələblərinə sadə bir həll:

 $.ajaxPrefilter(function (options, originalOptions, jqXHR) { // you can use originalOptions.type || options.type to restrict specific type of requests options.data = jQuery.param($.extend(originalOptions.data||{}, { timeStamp: new Date().getTime() })); }); 

Burada jQuery prefilter-ə zəng etməklə bağlı daha çox məlumat əldə edin.

Əgər jQuery istifadə etmirsinizsə, seçdiyiniz kitabxananın sənədlərini yoxlayın. Bənzər funksiyaları ola bilər.

64
21 сент. cavab Baz1nga 21 sep verilir . 2012-09-21 11:53 '12 at 11:53 2012-09-21 11:53

Webapp məlumatlarını bir ASP.NET web xidmətindən əldə etməklə eyni problemim vardı

Mənim üçün çalışdı:

 public WebService() { HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); ... } 
40
21 сент. Cavab Tadej 21 sep verilir . 2012-09-21 00:28 '12 at 0:28 2012-09-21 00:28

Bu problemi də PhoneGap ərizəsində tapdım. getTime() JavaScript funksiyasını aşağıdakı kimi istifadə etdim:

 var currentTime = new Date(); var n = currentTime.getTime(); postUrl = "http://www.example.com/test.php?nocache="+n; $.post(postUrl, callbackFunction); 

Bunu anlamaq üçün bir neçə saat sərf edirəm. Apple, bu önbelleğe alma problemi haqqında developers bildirir əgər gözəl olardı.

39
20 сент. 20 Sentyabrda Bashevis tərəfindən verilmiş cavab 2012-09-20 10:34 '12 saat 10:34 'da 2012-09-20 10:34

Nəhayət, açılış probleminə bir həll var.

Javascriptdə:

 var xhr = new XMLHttpRequest(); xhr.open("post", 'uploader.php', true); xhr.setRequestHeader("pragma", "no-cache"); 

PHP-də :

 header('cache-control: no-cache'); 
22
22 сент. Cavab goker.cebeci tərəfindən verilir 22 sentyabr 2012-09-22 13:16 '12 at 13:16 2012-09-22 13:16

Öz iOS 6.0 blog yazıdan AJAX POST sorğularında caching :

Onu düzəltmək üçün: Sorgu önbelleğinin qarşısını almaq üçün müxtəlif yollar var. Tövsiyə edilən metod, bir önbellek olmadan bir mövzu əlavə etməkdir. İşdə necə edilir.

Jquery

İOS 6.0 yoxlayın və Ajax başlığını aşağıdakı kimi qurun:

 $.ajaxSetup({ cache: false }); 

ZeptoJS:

İOS 6.0 yoxlayın və Ajax başlığını aşağıdakı kimi qurun:

 $.ajax({ type: 'POST', headers : { "cache-control": "no-cache" }, url : , data:, dataType : 'json', success : function(responseText) {…} 

Server tərəfi

Java:

 httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); 

Hər hansı bir məlumat müştəriyə göndərilməzdən əvvəl bunu səhifənin yuxarı hissəsinə əlavə etmək üçün əmin olun.

. NET

 Response.Cache.SetNoStore(); 

və ya

 Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); 

Php

 header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1. header('Pragma: no-cache'); // HTTP 1.0. 
14
14 нояб. cavab verildi kiranv 14 Noyabr. 2012-11-14 09:02 '12 at 9:02 2012-11-14 09:02

Bu kod snippet jQuery və jQuery Mobile ilə yaxşı işləyir:

 $.ajaxSetup({ cache: false, headers: { 'Cache-Control': 'no-cache' } }); 

Yalnız bir yerə JavaScript kodunuza yerləşdirin (jQuery yüklədikdən və AJAX tələblərini yerinə yetirmədən əvvəl ən yaxşı) və bu kömək etməlidir.

7
26 янв. Jonathan Jan 26'a cavab verin 2013-01-26 01:11 '13 at 1:11 2013-01-26 01:11

Bu Baz1nga cavabının yeniləməsidir. options.data bir obyekt deyil, simli olduğundan, sadəcə vaxt damgasının birləşməsinə müraciət etdim:

 $.ajaxPrefilter(function (options, originalOptions, jqXHR) { if (originalOptions.type == "post" || options.type == "post") { if (options.data  options.data.length) options.data += " else options.data = ""; options.data += "timeStamp=" + new Date().getTime(); } }); 
5
25 окт. cavab verildi remoder 25 oktyabr. 2012-10-25 15:32 '12 at 3:32 pm 2012-10-25 15:32

Ayrıca Ajax funksiyasının (funksiya 7212 xəttindən başlayır) yuxarı hissəsində (1.7.1-dən başlayaraq) jQuery Ajax- ı dəyişərək bu problemi düzəldə bilərsiniz. Bu dəyişiklik bütün POST istəkləri üçün jQuery daxili anti-önbellek özelliğini etkinleştirir.

(Tam script http://dl.dropbox.com/u/58016866/jquery-1.7.1.js saytında mövcuddur.)

Satırını daxil edin 7221:

 if (options.type === "POST") { options.cache = false; } 

Sonra aşağıdakıları dəyişdirin (~ 7497-dən başlayın).

 if (!s.hasContent) { // If data is available, append data to URL if (s.data) { s.url += (rquery.test(s.url) ? " : "?") + s.data; // #9682: remove data so that it not used in an eventual retry delete s.data; } // Get ifModifiedKey before adding the anti-cache parameter ifModifiedKey = s.url; // Add anti-cache in URL if needed if (s.cache === false) { var ts = jQuery.now(), // Try replacing _= if it is there ret = s.url.replace(rts, "$1_=" + ts); // If nothing was replaced, add timestamp to the end. s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? " : "?") + "_=" + ts : ""); } } 

Kimə:

 // More options handling for requests with no content if (!s.hasContent) { // If data is available, append data to URL if (s.data) { s.url += (rquery.test(s.url) ? " : "?") + s.data; // #9682: remove data so that it not used in an eventual retry delete s.data; } // Get ifModifiedKey before adding the anti-cache parameter ifModifiedKey = s.url; } // Add anti-cache in URL if needed if (s.cache === false) { var ts = jQuery.now(), // Try replacing _= if it is there ret = s.url.replace(rts, "$1_=" + ts); // If nothing was replaced, add timestamp to the end. s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? " : "?") + "_=" + ts : ""); } 
5
27 сент. Sam Şillər tərəfindən verilmiş cavab 27 sentyabr 2012-09-27 17:30 '12 saat 17:30 'da

GWT-RPC xidmətlərinin sürətli işi bu, bütün uzaq üsullara əlavə etməkdir:

 getThreadLocalResponse().setHeader("Cache-Control", "no-cache"); 
5
17 окт. Lars Høydahl tərəfindən verilmiş cavab 17 oktyabr 2012-10-17 01:57 '12 at 1:57 2012-10-17 01:57

Əsas ekrana əlavə olunan WebApps üçün bu problemi həll etmək üçün yuxarıda göstərilən müddətlərin hamısını izləmək lazımdır. Önbelleğe alma, yeni istəklərin təkrar önbelleğinin qarşısını almaq üçün web serverdə əlil olmalıdır və işlənmə üçün əvvəlcədən saxlanılan istəkləri göndərmək üçün hər bir istəyə bir sıra təsadüfi giriş məlumatları əlavə edilməlidir. Mesajıma baxın:

iOS6 - Ana ekranda webapp əlavə etmək üçün önbellekteki ajax POST sorğularını təmizləmək üçün bir yol varmı?

XƏBƏRDARLIQ: serverdə önbelleğe salmaqdan əl çəkmədən, onların istəklərinə bir zaman damgası əlavə edərək, müvəqqəti həlli həyata keçirən hər kəsə. Ərizəniz əsas ekrəyə əlavə olunduqdan sonra, HƏR ƏVVƏLİ cavabınız indi önbelleğe alınacaq, safari önbelleğini təmizləməyəcəkdir və bu müddət başa çatmır. Kimsə onu təmizləmək üçün bir yolu varsa, potensial yaddaş sızıntısı kimi!

4
28 сент. Cavab 28 sentyabr fəvvarəsi tərəfindən verilir 2012-09-28 18:57 '12 at 18:57 2012-09-28 18:57

GWT-RPC üçün nə işləyir?

 class AuthenticatingRequestBuilder extends RpcRequestBuilder { @Override protected RequestBuilder doCreate(String serviceEntryPoint) { RequestBuilder requestBuilder = super.doCreate(serviceEntryPoint); requestBuilder.setHeader("Cache-Control", "no-cache"); return requestBuilder; } } AuthenticatingRequestBuilder builder = new AuthenticatingRequestBuilder(); ((ServiceDefTarget)myService).setRpcRequestBuilder(builder); 
3
12 окт. istifadəçi tərəfindən verilmiş cavab cümə axşamı . 2012-10-12 09:55 '12 at 9:55 2012-10-12 09:55

İPad 4 / iOS 6 ilə mənim üçün işləməyən şeylər:

Istədim olan sorğu: Cache-Control: no-cache

 //asp.net's: HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache) 

Önbellek ekleme: mənim jQuery ajax çağırışım üçün yanlışdır

  $.ajax( { url: postUrl, type: "POST", cache: false, ... 

Yalnız bu xəyanət etdi:

 var currentTime = new Date(); var n = currentTime.getTime(); postUrl = "http://www.example.com/test.php?nocache="+n; $.post(postUrl, callbackFunction); 
3
29 апр. Brian Ogden tərəfindən 29 apreldə cavab verildi 2013-04-29 09:43 '13 at 09:43 2013-04-29 09:43

Mənim ASP.NET Çözümlerimi (pagemethods, webcode, və s.)

 protected void Application_BeginRequest(object sender, EventArgs e) { Response.Cache.SetCacheability(HttpCacheability.NoCache); } 
2
24 сент. Alexandre Sep 24- ə verildi 2012-09-24 16:10 '12 at 4:10 pm 2012-09-24 16:10

İmza imzalamaq üçün bu kimi bir şey kimi bir həll yolunu təklif edirəm:

getNewRecordID (intRecordType, strTimestamp) və sonra həmişə TimeStamp parametrindən keçin və bu dəyəri server tərəfinə buraxın. Bu problem ətrafında işləyir.

1
28 июля '16 в 19:33 2016-07-28 19:33 Cavab verilir fred1234 iyul 28, '16 saat 19:33 2016-07-28 19:33

Sorguyu katı bir çözüm halına getirmek üçün avtobus-önbellek parametrelerini eklerken, bunu gerçek bir önbelleğe dayanan hər hansı bir proqrama zarar verə biləcəyini düşünürəm. Düzgün başlıqlar ilə API yaratmaq ən yaxşı həlldir, hətta əgər bu, zəng edənlərə cache əlavə etmədən bir az daha mürəkkəbdir.

1
24 сент. Ivo Jansch'a cavab verildi 24 Sep. 2012-09-24 10:39 '12 at 10:39 2012-09-24 10:39

Struts 1 istifadə edənlər üçün burada problemi necə həll etdik.

web.xml

 <filter> <filter-name>SetCacheControl</filter-name> <filter-class>com.example.struts.filters.CacheControlFilter</filter-class> </filter> <filter-mapping> <filter-name>SetCacheControl</filter-name> <url-pattern>*.do</url-pattern> <http-method>POST</http-method> </filter-mapping> 

com.example.struts.filters.CacheControlFilter.js

 package com.example.struts.filters; import java.io.IOException; import java.util.Date; import javax.servlet.*; import javax.servlet.http.HttpServletResponse; public class CacheControlFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse resp = (HttpServletResponse) response; resp.setHeader("Expires", "Mon, 18 Jun 1973 18:00:00 GMT"); resp.setHeader("Last-Modified", new Date().toString()); resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0"); resp.setHeader("Pragma", "no-cache"); chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { } public void destroy() { } } 
1
10 янв. cbmeeks cavab 10 yanvar 2013-01-10 01:24 '13 'da 1:24' də 2013-01-10 01:24

Mən $ .ajaxSetup kombinasiyasından istifadə edərək problemimi düzəldə bildim və mesajımın URL'sinə bir vaxt damgası əlavə etdim (mesajın parametrlərinə / orqanına deyil). Bu, əvvəlki cavabların tövsiyələrinə əsaslanır.

 $(document).ready(function(){ $.ajaxSetup({ type:'POST', headers: {"cache-control","no-cache"}}); $('#myForm').submit(function() { var data = $('#myForm').serialize(); var now = new Date(); var n = now.getTime(); $.ajax({ type: 'POST', url: 'myendpoint.cfc?method=login data: data, success: function(results){ if(results.success) { window.location = 'app.cfm'; } else { console.log(results); alert('login failed'); } } }); }); }); 
1
19 янв. Cavab 19 yanvarda ShadeTreeDeveloper tərəfindən verilir 2013-01-19 20:27 '13 saat 20:27 'da 2013-01-19 20:27

Hesab edirəm ki, sizin probleminizi artıq həll etmişdiniz, amma internetdə önbellek haqqında fikir mübadiləsi edim.

Doğrudur, müştərilər tərəfində server tərəfində istifadə etdiyiniz hər bir dildə başlıqların bir çoxunu əlavə edə bilərsiniz və İnternetdə önbellektməzdən qaçınmaq üçün bir çox başqa tövsiyələrdən istifadə edə bilərsiniz, lakin həmişə müştərinin qoşulduğu yerə qoşulmayacağını heç vaxt bilmirsiniz serveriniz, Squid və ya digər önbellek məhsullarını istifadə edən otelin Hot-Spot bağlantısını istifadə edirsinizsə heç vaxt bilmirsiniz.

Əgər istifadəçilər real mövqeyini gizlətmək üçün bir proxy serverindən istifadə etsələr və s. önbellemenin qarşısını almaq üçün yeganə real yol, istək və zaman istifadə edilməsidir.

Məsələn:

 /ajax_helper.php?ts=3211321456 

Sonra ötürmək üçün lazım olan hər bir önbellek meneceri cache ehtiyatında eyni URLi tapmır və səhifənin məzmununu aşdı.

1
12 июня '14 в 19:40 2014-06-12 19:40 Cavab Lanello tərəfindən 12 İyun '14, 19:40 'da veriləcək 2014-06-12 19:40

Ruby Sinatra'da

 before '*' do if env['REQUEST_METHOD'] == 'POST' headers 'Cache-Control' => 'no-cache, no-store, must-revalidate' end end 
0
02 марта '15 в 8:12 2015-03-02 08:12 cavab 02 mart 2015-ci il saat 08:12 'da jchook tərəfindən verilir

Mənim giriş və giriş səhifələrim Firefox, IE və Chrome-da cazibə kimi işləyərkən ... Mən bu məsələ ilə iOS və OSX üçün Safari-də mübarizə aparırdım, bir neçə ay əvvəl SO-yə dair bir həll tapdım.

 <body onunload=""> 

VEYA javascript vasitəsilə

 <script type="text/javascript"> window.onunload = function(e){ e.preventDefault(); return; }; </script> 

Bu çirkin bir şeydir, amma bir müddətdir çalışır.

Niyə niyə bilmirəm, ancaq onun onunload hadisəsinə null olaraq geri dönərək, Safari səhifəsində saxlanılmır.

0
20 июля '14 в 0:12 2014-07-20 00:12 Cavab Adriano Rosa tərəfindən 20 İyul '14 'də 0:12 2014-07-20 00:12 ' də verilir

Nə üçün çalışdığımı merak etdiyim üçün bir müvəqqəti həll tapdım. Tadejin bir ASP.NET web xidməti haqqında cavabı oxumadan əvvəl mən işləyəcək bir şey düşünməyə çalışdım.

Mən bunu yaxşı bir qərar deyirəm, amma burada qeyd etmək istərdim.

ana səhifə: javascript funksiyası daxildir, checkStatus () Metod, html məzmununu yeniləmək üçün jQuery AJAX zəngindən istifadə edən başqa bir üsul çağırır. CheckStatus () çağırmaq üçün setInterval istifadə etdim. Əlbəttə ki, bir önbellek probleminə qaçdım.

Həll: bir yeniləməni tetiklemek üçün başqa bir səhifə istifadə edin.

Əsas səhifə mən runUpdate məntiqi dəyişən müəyyən və bədən tag əlavə:

 <iframe src="helper.html" style="display: none; visibility: hidden;"></iframe> 

Helper.html səhifəsində:

 <meta http-equiv="refresh" content="5"> <script type="text/javascript"> if (parent.runUpdate) { parent.checkStatus(); } </script> 

Beləliklə, checkStatus () əsas səhifədən çağırılırsa, önbelleğe alınmış məzmunu alıram. CheckStatus'u bir uşağın səhifəsindən çağırıram, yenilənən məzmunu alıram.

0
08 окт. CM Kanode 08 oct tərəfindən verilən cavab . 2012-10-08 18:54 '12 at 18:54 2012-10-08 18:54

Ərizə bağlı olaraq, problemi indi Safari> Advanced> Web Inspector istifadə edərək iOS 6-da düzəldə bilərsiniz, bu da bu vəziyyətdə kömək edəcəkdir.

Telefonunuzu Mac-də Safari-yə qoşun və veb-tətbiqi ilə bağlı bir problemi həll etmək üçün geliştirici menyusundan istifadə edin.

Web görünüşünü istifadə edərək, tətbiq üçün, iOS6-a yüksəltdikdən sonra veb-sayt məlumatlarını silin. Yalnız bir tətbiqdə bir problem var idi və bu, IOS6-nın beta testi zamanı həll olundu.

Ayrıca, tətbiqinizi keçirmək üçün NSURLCache-i yoxlayın, əgər xüsusi bir tətbiqdə WebView-də yoxsa.

https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSURLCache_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40003754

Hesab edirəm ki, probleminizin əsl mahiyyətinə, həyata keçirilməsinə və s.

Bağlantı: $ .ajax çağırır

0
22 сент. Steven Strauss tərəfindən verilmiş cavab 22 sentyabr 2012-09-22 00:57 '12 at 0:57 2012-09-22 00:57

ASP.NET ilə yalnız pragma:no-cache əlavə etdikdən sonra pragma:no-cache IIS pragma:no-cache başlığı. Cache-Control: no-cache kifayət deyil.

-1
25 сент. Cavab Boris tərəfindən verilir 25 Sep 2012-09-25 01:05 '12 saat 01:05 'da 2012-09-25 01:05

tags ilə bağlı digər suallar və ya bir sual