2014-09-09 2 views
0

관리자가 내 사이트에 대한 여러 가지 사항을 변경할 수있는 제어 페이지가 있습니다. 하나의 섹션에서 관리자가 페이지를 변경할 수 있습니다. 선택한 페이지에서 jQuery.get을 사용하여 내용을 찾은 다음 해당 내용을 텍스트 영역에 표시합니다. 이 모든 것이 제대로 작동하며 관리자가 내용을 수정하고 저장할 수 있습니다. 내용이 저장되고 페이지가 새로 고쳐지면 변경됩니다. 그러나 jQuery.get을 다시 사용하여 페이지의 새 컨텐츠를 찾으면 원본 페이지 컨텐츠 인 이전 데이터가 다시 나타납니다. 페이지를 새로 고침 한 횟수와 관계없이 항상 존재하지 않아야하는 데이터가 텍스트 영역에 항상 표시됩니다. jQuery.get은 이전 데이터를 반환합니다.

<script type="text/javascript"> 

$(document).ready(function() { 

    $('#editpage').click(function() { 

     var page = $('#page').val(); 

     $.get('pages/' + page + '.txt',{},function(data) { 

      $('#display').val(data); 

     }); 

    }); 

    $('#savepage').click(function() { 

     var pageToChange = $('#page').val(); 
     var contents = $('#display').val(); 

     $.post('changepage.php',{page:pageToChange,text:contents},function(data) { 

      $('#saveyay').html('<div class="success">Saved Changes</div>'); 

     }); 

    }); 

}); 

</script> 

그리고 changepage.php :

<?php 

    if (array_key_exists('text',$_POST) AND array_key_exists('page',$_POST)) { 

     file_put_contents('pages/'.$_POST['page'].'.txt', $_POST['text']); 

    } 

?> 

무엇 내가 놓친 여기 는 격리 된 편집 페이지 코드?

+0

는 캐싱 헤더를 수정합니다. – Bergi

답변

1

가능한 이유는 get 요청의 캐싱입니다.

그래서 모든 아약스 요청을 false로 캐시 속성을 설정합니다 ajaxSetup()를 사용하여 설정

$.ajaxSetup({ 
    cache: false 
}); 

() GET 요청하기 전에 $.ajaxSetup()를 사용하여 cache: false을 설정해보십시오. 당신은 단지 하나의 요청에 대한 속성을 설정하려면

당신은 사용자 지정 옵션

결과를 캐싱
+0

또는 특정 요청에 – Popnoodles

0

브라우저와 $.ajax() 대신 $.get() 사용할 수 있습니다.

get에서 ajax으로 전환하고 cache: false을 옵션으로 전달하십시오.

캐시 (기본 : 사실, dataType와 '스크립트'와 'JSONP'에 대해 false)
유형 : 브라우저 캐시 되지 부울
false로 설정하면 요청 강제 페이지. 참고 : 캐시를 false로 설정하면 은 HEAD 및 GET 요청으로 올바르게 작동합니다. 이것은 "_ = {timestamp}"를 GET 매개 변수에 추가하여 작동합니다. 다른 유형의 요청에는 매개 변수가 필요하지 않습니다. IE8에서는 GET에 의해 이미 요청 된 URL 에 POST가 수행됩니다.

0

이것은 html 캐시가 로컬에 저장 되었기 때문입니다. 당신의 자바 스크립트 파일 장소의 시작에

:

$.ajaxSetup({ 
    cache: false 
}); 
+0

하지만 모든 사용자에게 그렇게 할 수는 없습니다. 코드의 솔루션이 필요합니다. – Popnoodles

+0

클라이언트 쪽에서 캐시를 사용하지 않도록 설정하는 것은 해결책이 아닙니다. – Bergi

+0

답변이 업데이트되었으므로 다른 사람들의 의견을 복사했을 수도 있습니다. – Popnoodles

관련 문제