2013-10-18 3 views
2

누군가가 내 Meteor 앱으로 이동하면 홈 페이지가 먼저로드되고 표시됩니다. 그리고 나서 이것이 끝나자 마자 (사용자가 주위를 클릭하기 시작할 수 있습니다.), 내 응용 프로그램의 모든 페이지에 대한 다른 모든 자원과 데이터베이스가 배경에 LocalStorage로로드 (캐싱)됩니다. 내 앱의 페이지, 이미지 등을 탐색 할 때 즉시 나타납니다.유성 : 백그라운드로 모든 페이지 리소스로드

Meteor에서이 작업을 수행하는 데있어서 아무리 쉬운 생각이라도 있나요? 패키지가 있습니까?

둘째, 백그라운드 로딩 큐에서 가장 우선 순위가 높은 리소스를 어떻게 표시합니까? 예를 들어, "스플래시 페이지"와 그 이미지가 즉시 나타나는지 어떻게 확인합니까?

답변

2

유성애 앱은 설계 상 단일 페이지 사이트입니다. 당신이 예를 http://docs.meteor.com를 위해 배포 된 유성의 응용 프로그램에, 소스를 볼 경우, <head> 항상이 같은 같습니다 .CSS 파일을 하나 개의 파일에 연결된 앱의 CSS의 모든입니다

<link rel="stylesheet" href="/5a6084946b1bc47e30e45c05bdecb13536a2dc64.css"> 
<script type="text/javascript"> 
__meteor_runtime_config__ = {"meteorRelease":"galaxy-follower-5","ROOT_URL": 
"http://docs.meteor.com","ROOT_URL_PATH_PREFIX":"","serverId": 
"964b34dc-ffbb-b860-a313-9eedca254d83","DDP_DEFAULT_CONNECTION_URL": 
"ddp+sockjs://ddp--****-docs.meteor.com/sockjs"}; 
</script> 
<script type="text/javascript" src="/3353c2b059d42f3fe42e0d5eba87882b955d7cbe.js"> 
</script> 

것을; 그 .js 파일은 입니다. 모든 템플릿을 포함하여 앱의 자바 스크립트 중 하나 인이 하나의 파일로 연결됩니다. Meteor가 설계된 방식 일 뿐이며, Meteor의 소스를 깊이 파고 몇 가지 주요 덩어리를 다시 작성하지 않고도 변경할 수있는 것은 아닙니다.

내가 당신에게 제공 한 유일한 제안은 아파치 나 Nginx 서버와 같은 다른 서비스가 귀하의 홈페이지를 제공하는 것입니다. 위의 .css 및 .js 파일을 가져 와서 미리로드합니다. Meteor 앱에 router package을 사용하고 홈페이지의 모든 링크가 Meteor 앱에 정의 된 경로를 가리 키도록주의하십시오. Meteor-images, 추가 CSS, 라이브러리와 같은 외부 JavaScript에 직접적으로 필요하지 않은 리소스를 CDN 또는 Apache/Nginx 서버에서 분리하여로드하여 비 Meteor- 호스팅 된 홈페이지.

마지막으로 meteor-external-file-loader을 살펴보십시오. Meteor 앱에서 외부 JavaScript 라이브러리를 즉시로드 할 수 있도록 설계되었습니다. 예를 들어 실제로지도를 보여주는 페이지에서만 Google지도를로드 할 수 있습니다. 템플릿과 같이 앱 핵심 요소 인 JavaScript를로드하는 데 사용할 수 있는지 확실하지 않지만 앱이 너무 커서 어쨌든 분할한다면 어떨 때는 분리 할 수있는 코드 부분이있을 것입니다. meteor-external-file-loader를 사용하여 Apache/Nginx 서버에서 동적으로로드 할 수있는 자신 만의 커스텀 자바 스크립트 라이브러리와 같은 패키지에 저장한다.