필자가 궁금해하는 것은 본질적으로 구문 분석 된 정보를 검색하는 범용 Ajax 함수를 만들려고 시도하고 있으며, 호출 된 모든 값의 값으로 자동 저장된다는 것입니다. 이 특정한 경우에 그것은 행맨 게임에 대한 거대한 사전 단어 목록입니다. ajaxRequest.responseText.split("\n")
에 의해 생성 된 배열을 호출하는 방법은 무엇입니까? 내 경우는 ALAMI.Hangman.Wordlist
XHR 함수에서 파싱 된 데이터를 어떻게 피할 수 있습니까?
내 최종 목표는 ALAMI.Hangman.Wordlist[i]
를 사용하고 배열에서 그 장소에 저장되어있는 어떤 문자열의 값을 반환 가질 수있을 것입니다 것입니다.
당신이 괴롭히기 전에 XHR 요청 기능이 아래에 쓰여진대로 ALAMI.XHR();
을 통해 호출되었지만 불필요하다고 느꼈기 때문에이 코드에 포함시키지 않았습니다.
ALAMI.XHR.Get = function(URL){
"use strict";
var ajaxRequest = ALAMI.XHR();
var ajaxResponse;
ajaxRequest.open("GET", URL, true);
ajaxRequest.send(null);
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState === 4){
ajaxResponse = ajaxRequest.responseText.split("\n");
var extensionLocation = URL.lastIndexOf('.');
console.log(URL.substr(extensionLocation) + " file ...... " + ajaxResponse.length + " lines.");
}
}
return ajaxResponse;
}
ALAMI.Hangman = ALAMI.Hangman || {};
ALAMI.Hangman.Wordlist = ALAMI.XHR.Get('fulldictionary.txt');
//I want ALAMI.Hangman.Wordlist to be equal to the Array of ajaxRequest.responseText.split("\n")
내 최종 목표는 ALAMI.Hangman.Wordlist[i]
을 사용하고 배열에서 그 장소에 저장되어있는 어떤 문자열의 값을 반환 가질 수있을 것입니다.
또한 내 아약스 함수를 무한한 횟수로 사용할 수있는 보편적 인 방법으로 만들려고합니다. 예를 들어 :
는ALAMI.Hangman.Wordlist1 = ALAMI.XHR.Get('fulldictionary.txt');
ALAMI.Hangman.Wordlist2 = ALAMI.XHR.Get('dictionary2.txt');
최종 목표는 다음과 같습니다 글로벌 공간에서 내가 console.log(ALAMI.Hangman.Wordlist[0]);
를 작성하는 경우
정의되지 않은,하지만, 내가 원하는 배열이 너무 ALAMI.Hangman.Wordlist
에 저장된하는 것입니다 그렇게하면 배열의 첫 번째 값이 출력됩니다.
console.log(ALAMI.Hangman.Wordlist[0]); //Should output Apple
많은 점 : (1) ALAMI 란 무엇입니까? (2)'fulldictiornay.txt'가 유효한 URL처럼 보이지 않습니다. (3)'onreadystatechange' 함수가 다른 스레드에서 실행 중이고 onreadystatechange의'ajaxResponse'에있는 어떤 값도 메인 쓰레드에서 사용할 수 없다는 것을 알고 계셨습니까? 'return ajaxaResponse'는 절대로 작동하지 않을까요? –
ALAMI는 내가 자바 스크립트에서 만드는 모든 것에 대한 내 개인 네임 스페이스입니다 (YAHOO 또는 그 반대). fulldictionary.txt는 .js 파일 및 html 파일과 같은 폴더에 있기 때문에 유효한 URL입니다.이 코드에 대한 모든 것은'ajaxResponse'의 값을 반환하는 것을 제외하고는 작동합니다. – person0