2014-05-25 12 views
4

dojo 프레임 워크를 사용하여 웹 애플리케이션을 개발합니다. 이 앱은 file : /// 프로토콜을 사용하는 브라우저에서로드해야합니다 (Android/iPad 용 Cordova/Phonegap 응용 프로그램이됩니다). index.html 파일 보이는 같은 :file : /// protocol (Cordova/Phonegap)에서 dojo의 사용자 정의 빌드 사용 방법

헤드 섹션 :

<script type="text/javascript"> 
    var dojoConfig = { 
     parseOnLoad: true 
    } 
</script> 

<script type="text/javascript" src=""dojo.js"/> 

<script type="text/javascript"> 
    dojo.require("dojox.mobile.parser"); 
    dojo.require("dojox.mobile"); 
</script> 

본문 섹션 : 그것은 (Mobile application development, Part 1: PhoneGap and Dojo Mobile on Android)

그래서 IBM 수업에서 찍은

<script type="text/javascript"> 
    dojo.require("dojox.mobile.parser"); 
    dojo.require("dojox.mobile"); 
</script> 

두 가지 문제가 있습니다.

1) dojo는 모듈을로드하려고 시도하지만 file : /// 프로토콜을 사용하여 모듈을로드하지 못합니다. HTTP 프로토콜이 다시 요청됩니다.

2) index.html에서 웹 빌더가 만든 사용자 정의 도우 즈 빌드를 사용합니다. 이 빌드는 필요한 모듈이 들어있는 하나의 파일로 구성됩니다. 그러나 프레임 워크가 큰 커스텀 dojo.js에 이미로드되었지만 프레임 워크가 존재하지 않는 파일에서로드하려고 시도하는 모듈이 필요합니다.

누군가이 두 가지 문제를 해결하는 방법을 알고있을 수 있습니다.

답변

0

어떤 브라우저에서 코드를 테스트하고 있습니까? Chrome은 보안 문제로 인해 단일 HTML 파일 내에 여러 도메인을 허용하지 않습니다. firefox 브라우저에서 코드를 실행하면 경고 메시지가 나타나고 코드가 실행됩니다. 또한 index.html 파일이 도우지 소스 (도조 라이브러리)의 상위 디렉토리에 있는지 확인하십시오. 즉

디렉토리 구조로
아래에 표시해야한다

| - [dojo_source/dojo_library]
|
| -index.html

또한 브라우저 파일에 파일 프로토콜을 사용하여 코드를 실행 : //

희망이 도움이됩니다.

또 다른 대안은 웹 서버를 설치하는 것입니다. 크기가 136KB에 불과한 "몽구스"웹 서버를 사용해보십시오. 그러면 dojo 코드를 실행하도록 설정할 수 있습니다. 나는 웹 서버를 사용하고 있으며, 코드를 테스트하는 단위가 훌륭했다.

0

AMD 엔진은 XHR 요청을 통해 종속성을 지연로드하므로 파일 프로토콜을 통해 간단히 dojo를 사용할 수 없습니다. 이는 작동하지 않습니다. http://www.sitepen.com/blog/2014/07/30/dojo-faq-why-do-i-need-to-use-an-http-server-with-dojo/

단지 개발을위한 노드 JS 웹 서버를 사용하여뿐만 아니라 전화 응용 프로그램에서 작은 웹 서비스를 내장 생각해 :

을 참조하십시오.

호환성 문제로 인해 모듈이 전역 이름 공간에 정의되어 있기 때문에 여전히 사용 가능하지만 여전히 사용 가능한 인터페이스 dojo.someModule을 통해 모듈에 액세스를 시도 할 수 있습니다. 그러나 이것이 잘 작동하는지 확실하지 않습니다.

dojo 구성에서 async를 false로 설정할 수도 있습니다.