복붙노트

[JQUERY] 아이폰 OS 6 Safari는 아약스 결과 $를 캐싱되어 있습니까?

JQUERY

아이폰 OS 6 Safari는 아약스 결과 $를 캐싱되어 있습니까?

해결법


  1. 1."최대 연령 = 0 캐시 제어"조사의 조금 후에, iOS6의 사파리가 더 캐시 제어 헤더 또는 중 하나가없는 POST를 캐시 것으로 밝혀졌습니다.

    "최대 연령 = 0 캐시 제어"조사의 조금 후에, iOS6의 사파리가 더 캐시 제어 헤더 또는 중 하나가없는 POST를 캐시 것으로 밝혀졌습니다.

    차라리 서비스 요청의 말에 임의의 QueryStrings를 해킹하는 것보다 글로벌 차원에서 이런 일이 발생 캐싱을 방지 찾은 유일한 방법은 "노 캐시 캐시 제어"를 설정하는 것입니다.

    그래서:

    나는 애플이 POST에 대해 섹션 9.5에서 HTTP 사양에서이 이용하고 있다고 의심 :

    그래서 이론적으로는 POST 응답 ... 알고 캐시 할 수 있습니다. 그러나 다른 브라우저 메이커는 지금까지 지금까지 좋은 생각이 될 것이라고 생각하지 않았다. 더 캐시-Control 또는 일부 세트가있는 경우에만, 헤더 설정 기간 제한 없음 때 캐싱을 고려하지 않습니다. 그래서 버그해야합니다.

    다음은 공교롭게도 난 사실도 얻을, 캐시 아무것도하지 않기 때문에 내가 API 전체를 대상으로 내 아파치 설정의 오른쪽 비트에서 사용하는 것입니다. 내가 모르는 단지에 대한 게시물이를 설정하는 방법입니다.

    Header set Cache-Control "no-cache"
    

    업데이트 : 그냥 내가 POST가 동일한 경우에만, 그것이 지적 때문에 POST 데이터 또는 URL 그리고 네 벌금을 변경하지 않은 것으로 나타났습니다. 당신이 다른 곳 언급 할 수 있도록 단지 URL 또는 POST 데이터의 비트에 어떤 임의의 데이터를 추가 할 수 있습니다.

    업데이트 : 아파치에서이 같이하고자하는 경우 당신은 포스트에 "노 캐시"를 제한 할 수 있습니다 :

    SetEnvIf Request_Method "POST" IS_POST
    Header set Cache-Control "no-cache" env=IS_POST
    

  2. 2.나는이이 하나의 벽에 자신의 머리를 두드리는 다른 개발자들에게 유용 할 수 있기를 바랍니다. 내가 찾은 그 POST 응답을 캐시에서 아이폰 OS 6에서 다음 방지 사파리의 :

    나는이이 하나의 벽에 자신의 머리를 두드리는 다른 개발자들에게 유용 할 수 있기를 바랍니다. 내가 찾은 그 POST 응답을 캐시에서 아이폰 OS 6에서 다음 방지 사파리의 :

    내 솔루션은 (내 모든 AJAX 요청이 POST입니다) 내 자바 스크립트에서 다음을이었다.

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

    나는 또한 [프라그 마를 : 노 캐시] 추가하지 헤더를 내 서버 응답의 많은.

    다시에 헤더를 추가해야합니다, 그래서 거짓은 $ .ajaxSetup (에 지정된 설정)을 사용하지 않습니다 : 위의 솔루션을 사용하는 경우 어떤 $ 아약스 ()는 당신이 글로벌로 설정되어 있는지 확인 호출하는 유의하십시오.


  3. 3.모든 웹 서비스 요청에 대한 간단한 솔루션, 당신이 jQuery를 사용하는 가정 :

    모든 웹 서비스 요청에 대한 간단한 솔루션, 당신이 jQuery를 사용하는 가정 :

    $.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()
        }));
    });
    

    여기에 jQuery를 프리 필터 호출에 대해 더 읽어보십시오.

    당신이 jQuery를 사용하지 않는 경우, 선택의 라이브러리의 문서를 확인하십시오. 그들은 유사한 기능을 가질 수있다.


  4. 4.난 그냥 잘 폰갭 응용 프로그램으로이 문제를 가지고 있었다. 나는 다음과 같은 방식으로 자바 스크립트 함수 다음 getTime ()를 사용하여 그것을 해결 :

    난 그냥 잘 폰갭 응용 프로그램으로이 문제를 가지고 있었다. 나는 다음과 같은 방식으로 자바 스크립트 함수 다음 getTime ()를 사용하여 그것을 해결 :

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

    나는이 아웃내는 몇 시간을 낭비. 그것은이 캐싱 문제의 개발자에게 통보 애플의되어 좋은있을 것입니다.


  5. 5.나는 ASP.NET 웹 서비스에서 데이터를 가져 오는 웹 응용 프로그램과 같은 문제가 있었다

    나는 ASP.NET 웹 서비스에서 데이터를 가져 오는 웹 응용 프로그램과 같은 문제가 있었다

    이것은 나를 위해 일한 :

    public WebService()
    {
        HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        ...
    }
    

  6. 6.마지막으로, 나는 내 업로드 문제에 대한 해결책을했습니다.

    마지막으로, 나는 내 업로드 문제에 대한 해결책을했습니다.

    자바 스크립트에서 :

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

    PHP에서 :

    header('cache-control: no-cache');
    

  7. 7.아약스 POST 요청을 캐싱 내 자신의 블로그 게시물 아이폰 OS 6.0에서 :

    아약스 POST 요청을 캐싱 내 자신의 블로그 게시물 아이폰 OS 6.0에서 :

    어떻게 그것을 해결하기 위해 : 요청의 캐싱을 방지하기위한 다양한 방법이 있습니다. 권장되는 방법은없는 캐시 헤더를 추가하고있다. 이것은 수행하는 방법이다.

    아이폰 OS 6.0과 같은 세트 아약스 헤더를 확인합니다 :

    $.ajaxSetup({ cache: false });
    

    아이폰 OS 6.0를 확인하고이 같은 아약스 헤더를 설정 :

    $.ajax({
        type: 'POST',
        headers : { "cache-control": "no-cache" },
        url : ,
        data:,
        dataType : 'json',
        success : function(responseText) {…}
    
    httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
    

    모든 데이터가 클라이언트로 전송되기 전에 상단에있는 페이지를이를 추가해야합니다.

    Response.Cache.SetNoStore();
    

    또는

    Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
    
    header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
    header('Pragma: no-cache'); // HTTP 1.0.
    

  8. 8.이 자바 스크립트 조각은 jQuery를 및 jQuery를 모바일로 잘 작동 :

    이 자바 스크립트 조각은 jQuery를 및 jQuery를 모바일로 잘 작동 :

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

    그냥 (jQuery를로드 한 후, 최고의 당신이 AJAX 요청을하기 전에) 자바 스크립트 코드의 어딘가에 배치하고 그것은 도움이 될 것입니다.


  9. 9.또한 아약스 기능 (라인 7212에서 기능이 시작)의 상단에 (1.7.1 기준) 다음을 수행하여 jQuery를 아약스 기능을 수정하여이 문제를 해결할 수 있습니다. 이러한 변화는 활성화 내장 된 모든 POST 요청에 대한 jQuery를 안티 캐시 기능.

    또한 아약스 기능 (라인 7212에서 기능이 시작)의 상단에 (1.7.1 기준) 다음을 수행하여 jQuery를 아약스 기능을 수정하여이 문제를 해결할 수 있습니다. 이러한 변화는 활성화 내장 된 모든 POST 요청에 대한 jQuery를 안티 캐시 기능.

    (전체 스크립트는 http://dl.dropbox.com/u/58016866/jquery-1.7.1.js에서 확인할 수있다.)

    라인 7221 아래에 삽입 :

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

    그런 다음 (라인 ~ 7497에서 시작) 다음을 수정합니다.

    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's 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 : "");
        }
    }
    

    에:

    // 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's 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 : "");
    }
    

  10. 10.GWT-RPC 서비스에 대한 빠른 해결 방법은 모든 원격 메소드이를 추가하는 것입니다 :

    GWT-RPC 서비스에 대한 빠른 해결 방법은 모든 원격 메소드이를 추가하는 것입니다 :

    getThreadLocalResponse().setHeader("Cache-Control", "no-cache");
    

  11. 11.이 Baz1nga의 대답의 업데이트입니다. options.data 객체하지만 난 그냥 타임 스탬프을 연결에 의존하는 문자열이 아니므 :

    이 Baz1nga의 대답의 업데이트입니다. options.data 객체하지만 난 그냥 타임 스탬프을 연결에 의존하는 문자열이 아니므 :

    $.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();
      }
    });
    

  12. 12.홈 화면에 추가 웹 어플리케이션에 대해이 문제를 해결하려면, 상단의 모두 해결 방법을 따라야 할 필요가 투표했다. 요구를 캐싱하는 것은 향후 캐시되는 새 요청 이미 통과하기 위해 캐시 된 요청을 수행하기 위해 모든 것들을 요청에 추가 할 어떤 임의의 입력 요구를 방지하기 위해 웹 서버에 해제합니다. 내 게시물을 참조하십시오 :

    홈 화면에 추가 웹 어플리케이션에 대해이 문제를 해결하려면, 상단의 모두 해결 방법을 따라야 할 필요가 투표했다. 요구를 캐싱하는 것은 향후 캐시되는 새 요청 이미 통과하기 위해 캐시 된 요청을 수행하기 위해 모든 것들을 요청에 추가 할 어떤 임의의 입력 요구를 방지하기 위해 웹 서버에 해제합니다. 내 게시물을 참조하십시오 :

    iOS6의 - 홈 화면에 추가 된 웹 애플리케이션을위한 캐시 아약스 POST 요청을 취소 할 수있는 방법이 있습니까?

    경고 : 서버에 캐싱을 끄지 않고 자신의 요청에 타임 스탬프를 추가하여 해결 방법을 구현 사람에게. 앱이 홈 화면에 추가하면 모든 포스트 응답은 지금을 취소하지 않는 사파리 캐시를 지우고, 캐시됩니다 만료하지 않는 것 같습니다. 사람을 취소 할 수있는 방법이없는 한,이 모습은 잠재적 메모리 누수가 좋아!


  13. 13.아이 패드 4 / 아이폰 OS 6 나를 위해 작동하지 않았다 것들 :

    아이 패드 4 / 아이폰 OS 6 나를 위해 작동하지 않았다 것들 :

    포함하는 내 요청 : 캐시 제어 : 노 캐시

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

    내 jQuery를 아약스 호출에 잘못된 : 캐시를 추가

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

    만 이것은 속임수를 썼는지 :

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

  14. 14.즉 GWT-RPC 주변에 일을의

    즉 GWT-RPC 주변에 일을의

    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);    
    

  15. 15.ASP.NET에서 내 해결 (pagemethods 등 웹 서비스)

    ASP.NET에서 내 해결 (pagemethods 등 웹 서비스)

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
    }
    

  16. 16.캐시 버스터 매개 변수를 추가하면 요청 봐 다른 솔리드 솔루션처럼 보인다 수 있도록하면서 실제 캐싱 촬영 장소에 의존하는 모든 응용 프로그램을 다치게하는 것처럼, 나는 반대 권합니다. API를 출력에게 올바른 헤더를 만드는 것은 그 호출자에 캐시 동무를 추가하는 것보다 약간 더 어려운 경우에도 최적의 솔루션입니다.

    캐시 버스터 매개 변수를 추가하면 요청 봐 다른 솔리드 솔루션처럼 보인다 수 있도록하면서 실제 캐싱 촬영 장소에 의존하는 모든 응용 프로그램을 다치게하는 것처럼, 나는 반대 권합니다. API를 출력에게 올바른 헤더를 만드는 것은 그 호출자에 캐시 동무를 추가하는 것보다 약간 더 어려운 경우에도 최적의 솔루션입니다.


  17. 17.스트럿츠 1 사용하는 사람들을 위해, 여기에 내가이 문제를 해결하는 방법입니다.

    스트럿츠 1 사용하는 사람들을 위해, 여기에 내가이 문제를 해결하는 방법입니다.

    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() {
        }
    
    }
    

  18. 18.나는 (안 후 파라미터 / 몸) $ .ajaxSetup의 조합을 사용하고 내 게시물의 URL에 타임 스탬프를 추가하여 내 문제를 해결할 수 있었다. 이전 답변의 권고에 따라이

    나는 (안 후 파라미터 / 몸) $ .ajaxSetup의 조합을 사용하고 내 게시물의 URL에 타임 스탬프를 추가하여 내 문제를 해결할 수 있었다. 이전 답변의 권고에 따라이

    $(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&time='+n,
                data: data,
                success: function(results){
                    if(results.success) {
                        window.location = 'app.cfm';
                    } else {
                        console.log(results);
                        alert('login failed');
                    }
                }
            });
        });
    });
    

  19. 19.나는 당신이 이미 문제를 해결 한 생각하지만, 나 웹 캐싱에 대한 아이디어를 공유 할 수 있습니다.

    나는 당신이 이미 문제를 해결 한 생각하지만, 나 웹 캐싱에 대한 아이디어를 공유 할 수 있습니다.

    그것은 당신이 각 사용 언어, ​​서버 사이드, 클라이언트 측에서 많은 헤더를 추가 할 수 있습니다 사실입니다, 당신은 웹 캐싱을 방지하기 위해 다른 많은 트릭을 사용하지만, 클라이언트가 서버에 연결하는 경우 항상 당신이 알고하지 않을 수 있다고 생각 할 수 있습니다, 그는 오징어 또는 다른 캐싱 제품을 사용하는 호텔의 "핫 스폿"연결을 사용하는 경우 당신은 절대 모릅니다.

    사용자는 등 자신의 실제 위치를 숨기기 위해 프록시를 사용하는 경우 ... 피하기 캐싱 진짜 유일한 방법은 사용되지도 경우 요청의 타임 스탬프입니다.

    예를 들면 :

    /ajax_helper.php?ts=3211321456
    

    그런 다음 패스에있는 모든 캐시 관리자는 캐시 저장소에 동일한 URL을 찾아 다시 다운로드 페이지 내용 가지 않았다.


  20. 20.응용 프로그램에 따라 할 수있는 문제가 촬영이이 상황에 도움이 될 수 있도록 사파리> 고급> 웹 관리자를 사용하여 아이폰 OS 6 이제 문제를 해결합니다.

    응용 프로그램에 따라 할 수있는 문제가 촬영이이 상황에 도움이 될 수 있도록 사파리> 고급> 웹 관리자를 사용하여 아이폰 OS 6 이제 문제를 해결합니다.

    Mac에서 사파리에 전화를 연결하는 것은 그 다음 문제가 촬영에 개발자 메뉴 웹 응용 프로그램을 사용합니다.

    웹보기를 사용하여 응용 프로그램에 특정 포함한 iOS6의로 업데이트 후 아이폰에서 웹 사이트 데이터를 지 웁니다. 하나의 응용 프로그램은 문제를 가지고이는 진짜 문제가 있기 때문에, iOS6의 베타 테스트 방식으로 다시 동안 그것을 해결했다.

    당신은뿐만 아니라 당신의 응용 프로그램을 볼 필요가 사용자 지정 응용 프로그램에서 웹보기의 경우 NSURLCache을 확인 할 수 있습니다.

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

    나는 등의 문제, 구현의 본질에 따라 같아요 ..

    참고 : $ 아약스 호출


  21. 21.나뿐만 작동 왜 나를 궁금하게 하나의 해결 방법을 발견했다. ASP.NET 웹 서비스와 관련된 타데의 답변을 읽기 전에, 나는 일하는 것이 뭔가을 마련하려고했다.

    나뿐만 작동 왜 나를 궁금하게 하나의 해결 방법을 발견했다. ASP.NET 웹 서비스와 관련된 타데의 답변을 읽기 전에, 나는 일하는 것이 뭔가을 마련하려고했다.

    그리고 나는 그것이 좋은 솔루션입니다 것을 말하는 게 아니에요,하지만 난 그냥 여기를 문서화하고 싶었다.

    기본 페이지 : 자바 스크립트 함수에서 checkStatus ()를 포함한다. 이 방법은 HTML 콘텐츠를 업데이트 할 jQuery를 AJAX 호출을 사용하여 다른 방법을 호출합니다. 나는에서 checkStatus를 호출하여 setInterval을 사용 (). 물론, 내가 캐싱 문제로 달렸다.

    해결 방법 : 업데이트를 호출하는 다른 페이지를 사용합니다.

    메인 페이지에, 나는 부울 변수, runUpdate을 설정하고 body 태그에 다음과 같은 추가 :

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

    helper.html의에서 :

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

    에서 checkStatus ()가 메인 페이지에서 호출한다면, 나는 캐시 된 콘텐츠를. 내가 자식 페이지에서 checkStatus를 호출하면, 나는 컨텐츠를 업데이트됩니다.


  22. 22.내 로그인 및 회원 가입 페이지가 파이어 폭스, IE와 크롬의 매력처럼 작동하지만 ... 나는 IOS와 OSX 용 Safari에서이 문제를 고민 봤는데, 몇 달 전 전 SO에 대한 해결 방법을 발견했다.

    내 로그인 및 회원 가입 페이지가 파이어 폭스, IE와 크롬의 매력처럼 작동하지만 ... 나는 IOS와 OSX 용 Safari에서이 문제를 고민 봤는데, 몇 달 전 전 SO에 대한 해결 방법을 발견했다.

    <body onunload="">
    

    또는를 통해 자바 스크립트

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

    이것은 좀 추한 일하지만 잠시 동안 작동합니다.

    왜 그런지 모르겠지만 페이지으로 onUnload 이벤트에 널 (null)을 반환하는 사파리에 캐시되지 않습니다.


  23. 23.우리는 때때로 아마도 때문에 애플은 CPU 속도를 거절에, 가짜 빈의 AJAX의 결과를 반환, 아이폰 OS 버전 9 및 10을 실행하는 구형 아이폰과 아이 패드를 발견했다. 빈 결과를 반환 할 때 캐시에서 결과를 반환하는 것처럼, 아이폰 OS는 서버를 호출하지 않습니다. 주파수는 반환 빈을 호출 AJAX의 약 10 % ~ 30 %에서 크게 다릅니다.

    우리는 때때로 아마도 때문에 애플은 CPU 속도를 거절에, 가짜 빈의 AJAX의 결과를 반환, 아이폰 OS 버전 9 및 10을 실행하는 구형 아이폰과 아이 패드를 발견했다. 빈 결과를 반환 할 때 캐시에서 결과를 반환하는 것처럼, 아이폰 OS는 서버를 호출하지 않습니다. 주파수는 반환 빈을 호출 AJAX의 약 10 % ~ 30 %에서 크게 다릅니다.

    이 솔루션은 믿기 어렵다. 그냥 1 초를 기다렸다가 다시 호출합니다. 우리의 테스트에서 단 하나의 반복은 지금까지 필요했던 모든 것을했지만, 우리는 4 회까지 호출하는 코드를 썼다. 우리는 1 초 대기가 필요하지 있는지 경우, 그러나 우리는 반복 호출의 버스트와 함께 우리의 서버에 부담을 위험에 싶지 않았다.

    우리는 문제가 다른 데이터와 다른 API 파일에 호출, 두 개의 서로 다른 AJAX 호출을 발생 발견했다. 그러나 나는 그것이 어떤 AJAX 호출에 일어날 수있는 우려하고있다. 우리는 모든 AJAX 결과를 검사하지 않기 때문에 우리는 모르고 우리는 오래된 장치에서 모든 호출을 여러 번 테스트하지 않습니다.

    두 문제 AJAX 호출을 사용했다 : POST, 비동기 = 사실, setRequestHeader를 =을 ( '콘텐츠 유형을', '응용 프로그램 / x-www-form-urlencoded를')

    문제가 발생하면, 무슨 하나의 AJAX 호출은 일반적으로있다. 그것은 AJAX 호출을 중복으로 인해 아니다 그래서. 장치가 때때로하지 바쁜이지만, 가끔은 문제가 발생하고 DevTools로하지 않고 우리가 정말 시간에 무슨 일이 일어나고 있는지 모른다.

    아이폰 OS (13)는이 작업을 수행하거나 크롬이나 파이어 폭스하지 않습니다. 우리는 아마도 다른 사람이들을 테스트 할 수 아이폰 OS 11 또는 12를 실행하는 테스트 장치가없는?

    이 문제를 검색 할 때이 질문은 상단 구글 결과이기 때문에 나는 여기에 주목하고있다.


  24. 24.그것은 단지 프라 그마를 추가 한 후 ASP.NET과 협력 : no-cache 헤더 IIS에서. 캐시 제어 : 노 캐시가 충분하지 않았다.

    그것은 단지 프라 그마를 추가 한 후 ASP.NET과 협력 : no-cache 헤더 IIS에서. 캐시 제어 : 노 캐시가 충분하지 않았다.


  25. 25.나는 이런 식으로 뭔가로 함수 서명을 수정하는 해결 방법을 제안한다 :

    나는 이런 식으로 뭔가로 함수 서명을 수정하는 해결 방법을 제안한다 :

    getNewRecordID (intRecordType, strTimestamp) 그리고 항상뿐만 아니라 타임 스탬프 매개 변수를 전달하고, 단지 서버 측에서 그 값을 폐기합니다. 이 문제를 해결 작동합니다.

  26. from https://stackoverflow.com/questions/12506897/is-safari-on-ios-6-caching-ajax-results by cc-by-sa and MIT license