현재 서버의 일부 데이터가 자바 스크립트 객체에 저장되어 있어야하는 웹 애플리케이션을 작성하고 있습니다. 로드해야하는 데이터의 양은 매우 적습니다. 아마도 약 1KB입니다. 데이터를 애플리케이션에로드하는 방법에 대한 결정에 직면했습니다. 여기에 두 명백한 내가 취할 수있는 경로 (나에게 어쨌든)입니다자바 스크립트 객체에 데이터를로드하는 방법
1 - jQuery의 문서 준비 기능을 사용하여, 나는이 서버에 AJAX 요청을하고 해당 자바 스크립트 객체의 응답을 저장합니다. 이런 식으로 보일지도 모릅니다.
$(function() {
$.get('index.php?get=data', function(data) {
myObj.addData(data);
});
});
2 - 대안은 첫 페이지 요청 중에 페이지와 함께 데이터를 보내는 것입니다. 이를 위해서 내 서버가 데이터를 생성하여 <script>
태그 사이의 마크 업에 출력하도록했습니다. 나의 현재 프로젝트는 PHP에 있기 때문에, 그것은 다음과 같이 보일 것입니다 :
...
</div>
<script>
window.myData = <?= json_encode($myData) ?>;
</script>
...
JQuery와 문서 준비 기능은 나중에 window.myData
라는 글로벌 변수에 대한 모양과 같은 적절한 자바 스크립트 객체로로드 것 :
$(function() {
myObj.addData(window.myData);
});
자바 스크립트 개체에 데이터를로드하는 기본 방법이 있습니까? 저장되는 데이터의 양은 비교적 적지 만 서버의 ping이 크지 않은 경우 AJAX 호출은 대기 시간이 길어질 수 있습니다. 그러나 AJAX 호출이 이러한 일에 관해서 더 대중적으로 보일 것입니다. 유효한 이유가 있습니까?
편집 : 데이터가 거의 변경되지 않습니다 (1 년에 한 번). 따라서 브라우저 캐싱이 많은 문제가되어서는 안됩니다.
을 @ShivanRaptor 아니,'올바른 기능 json_encode' 믿습니다. '$ myData'는 자바에서 배열로 변환되어야하는 PHP의 연관 배열입니다. 따라서 JSON으로 인코딩하면 Javascript가 이해할 수있는 올바른 구문을 제공합니다. –
옵션 1을 선호합니다. window.myData = = json_encode ($ myData)?>; 주로로드 할 때 데이터를 가져 오는 대신로드 할 때 데이터를 가져 오는 것이 좋습니다. 그러나 그것이 데이터가 마치 작은 것처럼 말하면됩니다. – deach
json_encode는 일반적으로 요청 데이터를 javascript 객체 표기법으로 인코딩하기 위해 서버 측에서 사용됩니다. jQuery는 요청 후 디코드를 처리합니다. json_decode는 json 객체를 수동으로 구문 분석하지 않고 javascript에서 직접 사용할 수없는 PHP 배열로 변환합니다. – Hobbes