답변:
dataurl-syntax를 사용하여 HTML 문서에 이미지를 포함 할 수 있습니다.이 이미지를 사용하면 이진 이미지 데이터의 base64 표현을 이미지의 src 속성으로 넣을 수 있습니다. 다른 종류의 미디어 파일에서도 작동합니다.
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9EFBAoYMhVvMQIAAAAtSURBVHicY/z//z8DHoBH+v///yy4FDEyMjIwMDDhM3lgpaEuh7gTEzDiDxYA9HEPDF90e5YAAAAASUVORK5CYII=">
CSS 스타일 시트를 사용하면 JavaScript에서 완전히 절차적인 스타일 시트를 작성할 수 있습니다.
대부분의 웹 응용 프로그램은 HTTP 요청을 통해 리소스에 액세스 할 수 있도록 웹 서버가 필요하기 때문에 모든 파일을 .zip 파일에 넣는 것만으로는 효과적인 솔루션이 아닙니다. 일부 시스템에서는 file://
URI-scheme을 통해 파일에 액세스 할 수 있지만 보안상의 이유로 모든 곳에서 작동한다고 보장 할 수 없으며 AJAX 요청과 같은 경우에는 실패합니다.
대부분의 인라인 리소스가있는 매우 간단한 앱에서 작동 할 수 있지만 이것은 내가 누군가에게 권장하는 접근법이 아닙니다. 그러나 다음과 같은 대안이 있습니다.
Node-Webkit을 사용하여 웹 애플리케이션을 기본 앱으로 패키지 할 수 있습니다 . 이 기능을 사용하여 게임에 기본 데스크탑 기능 (예 : 로컬 저장 게임)을 추가 할 수도 있습니다.
이것은 " 패키지 및 완료 "접근 방식이 아닙니다. 응용 프로그램의 일부를 다시 작성하고 다른 로더를 작성해야합니다 (예 : 데스크톱 응용 프로그램을 사용하면 파일 시스템을 통해 파일을로드하는 대신 HTTP를 사용함) -브라우저 / 온라인 게임에서 요청).
기본 목표는 플레이어가 게임을 오프라인에서 플레이하도록 허용하는 경우 응용 프로그램 캐시 를 사용하여 앱의 오프라인 액세스를 허용 할 수도 있습니다 . 이것은 대부분의 최신 브라우저 에서 작동하는 기능입니다 . 추가 이점은 사용자가 아무것도 다운로드 할 필요가 없으며 오프라인 일 때도 북마크를 사용하여 게임을 할 수 있다는 것입니다.
비동기 적으로로드되는 리소스 (AJAX)의 경우 별도의로드 메커니즘을 구현해야합니다. 당신의 사용을 만들 수있는 로컬 스토리지를 오프라인으로 사용하기 위해 이러한 자원을 절약 할 수 있습니다.
file:///
프로토콜 액세스를 허용하여 localStorage
저장에 효과적입니다. 온라인 게임을 제외하고 HTML 게임에서 할 수있는 모든 것을 확장 할 수 있습니다.
Chrome 기반 솔루션으로 게임을 오프라인에서 실행하고 일부 기본 기능을 즐기려면 Chrome 앱 만들기를 고려할 수 있습니다 .
이런 식으로, 당신은 당신이 어떤 즐길 수있는, 추가 가시성 크롬 웹 스토어에 배포 할 수 있습니다 강력한 API를 , 그리고 그것을 만들어 더 많은 독립 실행 형 응용 프로그램처럼 .
단점은 물론 Chrome이 필요하다는 것입니다.
글쎄, 그것은 당신이 정말로 얼마나 많은 일을 넣고 싶어하는지에 달려 있습니다. 현재 웹 API 세트를 사용하여 다음을 수행 할 수 있습니다.
Cmd+S
거나 Ctrl+S
브라우저에) 저장하거나 페이지를 PWA로 캐시 하도록 권장합니다 . 모바일에서는 dataURI가 잘 수행되지 않는다는 것을 알고 있습니다.zip
파일 JSZip을 체크 아웃 하십시오 . 어떻게 사용할 수 있는지 잘 모르겠지만 누군가가 좋은 아이디어를 얻을 수 있다고 확신합니다 (파일을 압축 한 다음 이진 데이터를 문자열로 변환 하여 HTML에 인라인으로 배치 할 수 있음).