HTML 5: Geolocation & Web Workers

[b]Geolocation (Định vị địa lý)[/b]

HTML5 có một API định vị địa lý cho phép một ứng dụng Web xác định vị trí địa lý hiện tại của bạn, giả sử thiết bị mà bạn đang nhắm tới cung cấp các tính năng để tìm kiếm các thông tin như vậy (ví dụ, GPS trên điện thoại di động).

Nếu bạn không có một thiết bị hỗ trợ tính năng này (chẳng hạn như một điện thoại thông minh iPhone hoặc Android 2.0), bạn có thể sử dụng Firefox và tải về một trình cắm thêm để cho phép bạn thiết lập vị trí của mình bằng tay

- Do đây là tính năng mới và còn phụ thuộc vào trình duyệt, để sử dụng được chúng, ta sẽ sử dụng object navigator của browser mà bạn đang dùng, cụ thể như sau:
window.navigator.geolocation.getCurrentPosition(showMyPosition,errorCallback);

- getCurrentPosition : phương thức giúp chúng ta lấy được vị trí hiện tại của user

Bản thân object geolocation hỗ trợ các phương thức sau:
void getCurrentPostition (successCallback,errorCallback) : chỉ lấy vị trí hiện tại của user
successCallback (position) : phương thức này nhận 1 tham số position – chính là vị trí hiện tại của user
errorCallback (errorCode) : errorCode - chi tiết thông tin lỗi

Vậy thì các trình duyệt sẽ dựa vào dữ liệu nào từ phía user để lấy thông tin về vị trí của user và các trình duyệt sẽ lấy chúng từ đâu?

Các trình duyệt sẽ sử dụng các hỗ trợ từ thiết bị phần cứng GPS trên điện thoại của bạn để trả về chính xác vị trí hiện tại

Vậy nếu bạn không có GPS hardware thì sao ? Khi đó trình duyệt sẽ sử dụng dựa vào thông tin của các cell phone (trạm phát sóng) gần đó để tính toán vị trí của bạn.

Vậy nếu bạn dùng trên PC thì các browser sẽ sử dụng thông tin nhà cung cấp dịch vụ mạng mà bạn đang sử dụng hay sẽ dựa vào các cột sống wifi gần đó , nhưng kết quả trả về sẽ không đảm bảo độ chính xác cao.

[b]Web workers là gì ?[/b]

Hiện nay việc sử dụng đa luồng trong phần cứng là không thể thiếu trong phần mềm.

Tuy nhiên công nghệ web chưa tân dụng được công việc này. Hiện nay thì có 1 công nghệ mới dành cho javacrip gọi là web worker

[b]Web worker có chức năng gì ?[/b]

Đối tượng Web Worker được tạo ra sẽ thực thi trong một thread độc lập và chạy ở chế độ nền nên không ảnh hưởng đến giao diện tương tác của trang web với người dùng.

Với đặc điểm này, bạn có thể sử dụng Web Workert các công việc đòi hỏi thời gian xử lý lâu nạp dữ liệu, tạo cache,…

http://nr0.upanh.com/b2.s32.d2/c9a247a46093e2bed0f5e3e81b23bd97_50240640...

Tập tin script sẽ được tải về và Worker chỉ được thực thi sau khi tập tin này tải hoàn tất. Trong tập tin script này, ta sẽ xử lý sự kiện ‘[b]message[/b]’ của Worker từ các dữ liệu nhận được thông qua phương thức [b]postMessage(). [/b]Phương thức này chấp nhận một tham số chứa thông điệp cần gửi đến tập tin script để xử lý. Dữ liệu này sẽ được lấy thông qua thuộc tính data của tham số event trong hàm xử lý sự kiện message

Ta sẽ gửi đi một dữ liệu kiểu mảng bao gồm tên lệnh và các dữ liệu cần xử lý. Worker sẽ phân tích dữ liệu nhận được và gọi các phương thức xử lý tương ứng.

Tuy nhiên, một Worker bạn tạo ra chỉ nên dành riêng để thực hiện một công việc cụ thể. Công việc chính của nó là thực hiện những công việc nặng khác

Điều cần lưu ý là Web Worker không chạy trên IE

link: http://www.mediafire.com/download.php?4c6k59hz2454da0