2009-05-17 43 views
11

Tôi đang sử dụng API Google Maps để hiển thị bản đồ trên một trang nhất định.API Google Maps - Tải chậm javascript

Vấn đề là tệp http://maps.google.com/maps?file=api..... đôi khi xảy ra tải rất chậm - giảm hiệu suất của trang, vì phần còn lại của JavaScript được tải lần đầu tiên trên tài liệu sẵn sàng, mà hiếm khi đạt được - vì trình duyệt khóa tập tin chờ Google.

Tôi đã cố gắng di chuyển tệp JavaScript từ thẻ <head> xuống dưới nội dung của tôi. Nhưng phần còn lại của JavaScript không bao giờ được kích hoạt vì trình duyệt chờ tệp từ Google.

Có cách nào xung quanh vấn đề này hoặc có ai khác gặp phải sự cố tương tự không? Nó bắt đầu gần đây, và tôi không biết tại sao.

Đây là mã của tôi, nếu có ai quan tâm:

<script type="text/javascript" src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAAa24xicak8_ghHX58i7La7hRFh9iM79SNC94rOejOtdMRvQmJiBS6Uv5F_1BNSh9ZuSzFXyekHISgew"> </script> 
<script type="text/javascript" src="/js/maps.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    // Google Maps 
    initialize(); 

    // Other JavaScript comes here.... 

    }); 
</script> 

Nếu tôi truy cập

http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAAa24xicak8_ghHX58i7La7hRFh9iM79SNC94rOejOtdMRvQmJiBS6Uv5F_1BNSh9ZuSzFXyekHISgew 

Các tải tập tin ngay lập tức.

+7

Bạn đang sử dụng Firebug? Tôi thấy rằng firebug giảm hiệu suất của ứng dụng của tôi khi tôi đang làm việc với các bản đồ api, và nếu tôi xem trang trên một trình duyệt mà không có firebug thì tốt. –

+0

Tôi đã nhìn thấy cùng một điều, nhưng chỉ trong firefox và khi chạy với localhost. IE và Chrome đã ổn. – RichH

+0

Tôi đang sử dụng Firebug để gỡ lỗi. Tôi có thể thử tắt nó đi và xem nó có giúp ích gì không. – janhartmann

Trả lời

16

Đây là một câu hỏi khá cũ bây giờ - giải pháp là để vô hiệu hóa firebug (atleast cho tôi).

+2

Vâng, đối với tôi, tôi đã điều tra trong cả FF và IE9, và khi đóng Firebug trong FF và Công cụ phát triển trong IE9 bản đồ được tải, thx! – Adil

3

Khi tối ưu hóa JavaScript: luôn đặt JS của bạn ở cuối tập lệnh API Maps của bạn. Tôi không thể nghĩ ra bất kỳ lý do chính đáng nào để có JS trong đầu.

+0

Tôi biết điều này là cũ nhưng nếu bạn đang sử dụng bản đồ google api hoặc require.js, cả hai đều khuyên bạn nên đặt nó ở trên cùng. – skaterdav85

+1

Tôi chưa gặp vấn đề gì ở phía dưới cho cả hai. –

+0

Nếu bạn đặt javascript của mình ở dưới cùng, nó sẽ không chạy cho đến sau khi trang được hiển thị, điều này không mong muốn trong một số trường hợp. – Muhd

12

Sử dụng API Ajax của Google. Từ một thời gian trước, tất cả các dịch vụ của Google có thể được truy cập thông qua API JavaScript. Đó là một hệ thống mô-đun, bạn chỉ phải bao gồm thư viện JSAPI, và sau đó bạn có thể tải động các mô-đun bạn cần — nó sẽ không chặn trang web của bạn.

<script type="text/javascript"   
     src="http://www.google.com/jsapi?key=ABCDEFG"></script> 
<script type="text/javascript"> 
google.load("maps", "2"); 
google.setOnLoadCallback(function() { 
    // Your logic goes here. 
    // It will be run right after the maps module was loaded. 
}); 
</script> 

Để biết thêm chi tiết, xem JSAPI's developer documentation.