개인적으로 PHP와 Javascript는 각각의 장점이 있다고 생각합니다. 이 두 가지가 완벽하게 결합된다면 많은 기적이 일어날 것입니다! 이런 글은 처음 써보는데 버그는 피할 수 없으니 정정해주세요~
요즘 AJAX 애플리케이션이 인기가 많은데, AJAX에서는 클라이언트 측 자바스크립트와 서버 측 동적 스크립트 간의 통신이 핵심입니다. 전송되는 정보가 비교적 간단한 경우에는 일반적으로 문자열을 직접 사용합니다. 정보 구조가 더 복잡한 경우에는 XML 문서를 사용하는 것이 일반적입니다. XML 문서는 널리 사용되지만 PHP로 생성하고 Javascript로 처리하는 것은 쉽지 않습니다. 여기서는 XML 문서보다 더 단순화된 대안인 JSON을 추천합니다!
먼저 Javascript의 기본을 이해해 봅시다.
1. 배열을 생성하려면 JS에 내장된 Array 클래스를 사용하여 초기화하거나 JSON 기호 "[]"를 사용할 수 있습니다. 다음 두 가지 방식으로 생성된 arr1과 arr2의 본질은 동일합니다.
var arr1 = new Array()
arr1[0] = "apple"
arr1[1] = "google";
arr1[2] = "longbill";
var arr2 = ["apple","google","longbill"]
배열의 인덱스는 또한 arr1["name"] = "longbill"과 같은 문자열일 수도 있습니다. 이때 배열은 객체와 동일합니다. . .
2. 객체를 생성하려면 JS 내장 클래스 Object를 사용하여 초기화하거나 JSON 기호 "{}"를 사용할 수 있습니다. 다음 두 가지 방식으로 생성된 obj1과 ob2의 본질도 같습니다.
var obj1 = new Object()
obj1.name = "longbill"
obj1; age = 18;
var obj2 = { name:"longbill",age:18 }
여기서 "{"와 "}" 사이의 공백은 "key" 형식으로 작성해야 합니다. :value", 다른 "key:value"는 ","로 구분해야 합니다. "Key"에는 공백과 같은 특수 문자도 포함될 수 있습니다. 이 경우 "phone number":123456
실제로 JS에서는 배열의 본질이 ""(따옴표)입니다. 객체이고 객체 자체도 배열입니다. 따라서 obj1.name과 obj1["name"]은 동일한 참조입니다.
JSON 기호를 중첩하여 복잡한 S 객체를 정의할 수도 있습니다.
var people = [
{
name: "longbill",
age: 18
},
{
이름:"neal",
나이:19
},
{
이름:"glocklee",
나이:17
}
];
//이것을 이해하셔야 합니다~~
대부분의 XML 문서는 JSON으로 표현할 수 있습니다:
JSON을 사용하는 경우 다음과 같이 표현할 수 있습니다.
{
root:
[
{
이름:"Ju love",
가격:"$15"
},
{
이름:"Javascript",
가격:" $25"
}
]}
훨씬 간단해졌나요?
그리고 클라이언트측 JS도 처리가 매우 간단합니다. JSON 정보를 추출하려면 문자열 함수 "eval"만 사용하면 됩니다. 표준 DOM이 많이 필요하지 않습니다. 작업에서 데이터를 추출합니다. 예:
//AJAX를 사용하여 서버에서 JSON 파일(문자열)을 다운로드하고 json
eval("var myvar = " json); //이런 방식으로 JSON의 정보는 myvar 변수에 표현됩니다.
단점: JSON 형식이 올바르지 않으면 서버 측 JS 시스템 오류가 발생하거나 충돌이 발생할 수도 있습니다.
해결책:
eval 전에 try(테스트 실행)를 사용하는 것이 가장 좋습니다. 예:
//AJAX를 사용하여 서버에서 JSON 파일(문자열)을 다운로드한 후 저장 it json 변수에서
try {
eval("var myvar = " json)
} catch(e) { Alert('json 구문 오류!') }
//In 그런데 JSON 형식이 잘못된 경우에도 스크립트 오류 대신 프롬프트 상자만 나타납니다!