Tôi muốn tạo ứng dụng cục bộ có giao diện người dùng dựa trên trình duyệt thay vì giao diện độc lập dựa trên MFC/Qt/v.v. Nếu tôi không muốn chạy máy chủ web trên máy cục bộ, làm cách nào tôi có thể triển khai các phần động của ứng dụng của tôi? Trình duyệt có thể được trỏ đến các tập lệnh cục bộ, tệp thực thi hoặc thư viện trên máy không? Tôi có thể sử dụng cơ sở dữ liệu cục bộ trực tiếp> Có những cạm bẫy nào với phương pháp này không?Có thể viết một ứng dụng web cục bộ không cần máy chủ không?
Trả lời
Có, nhưng có giới hạn. Hạn chế chính là bạn không thể thực hiện bất kỳ công cụ CGI nào vì trình duyệt sẽ mở và hiển thị mã nguồn kịch bản của bạn thay vì thực thi chúng. Điều này có một số ngụ ý:
- Bạn không thể kết nối với cơ sở dữ liệu. Điều này làm cho nó khó khăn để làm công cụ phổ biến như lưu trữ các tiểu bang và dữ liệu người dùng.
- Bạn không thể đặt Loại nội dung. Điều này có nghĩa là bạn không thể thực hiện bất kỳ công cụ XML ưa thích nào như phục vụ các tệp SVG hoặc sử dụng XML trong XMLHttpRequest.
- Bạn không thể tạo hình ảnh động (bằng ImageMagick hoặc GD). Mặc dù với HTML5, bạn có thể làm điều đó với canvas.
- Bạn không thể đọc hoặc ghi vào hệ thống tệp. Điều này lại hạn chế khả năng lưu dữ liệu của bạn. Nhưng nó có thể được thực hiện với quyền người dùng chính xác (thêm về điều này dưới đây).
Nhưng có giải pháp thay thế. HTML5 cho phép bạn lưu trữ dữ liệu trong bộ nhớ cục bộ nhưng rõ ràng điều này sẽ không hoạt động trong các trình duyệt cũ hơn. Bạn có thể lưu trữ dữ liệu trong cookie thay vào đó nhưng có giới hạn về kích thước. Cuối cùng bạn thực sự có thể lưu vào tập tin. Bạn phải hướng dẫn người dùng của mình sửa đổi tùy chọn trình duyệt của họ để cho phép tập lệnh của bạn thực hiện việc này nhưng có thể thực hiện được. Một ví dụ về điều này là TiddlyWiki. Đây là một wiki cá nhân khép kín trong một tệp HTML duy nhất. Mỗi lần bạn lưu nội dung mới, trang sửa đổi và lưu chính nó. Bạn có thể muốn xem cách họ làm điều đó cho cảm hứng.
Nếu bạn muốn tuyến đường HTML thuần túy HTML5 sẽ cho phép bạn tạo cơ sở dữ liệu cục bộ trong trình duyệt; với đủ kinh nghiệm mã hóa javascript, bạn có thể viết toàn bộ trang web trong đó làm cho mọi thứ trong JS thay vì tải các tệp HTML. Tải một tệp và hiển thị mọi thứ sau đó bằng cách sử dụng công cụ javascript.
Nếu ứng dụng có ý nghĩa của nó và bạn có thể viết nó theo cách đó mà không phát điên chào bạn.
Nếu bạn đang ở trên cửa sổ, bạn có thể ăn gian và sử dụng Active x/vbscript - nhưng nếu bạn đang làm điều đó tại sao không viết một lần nhấp ứng dụng .net. Nếu không có một số thành phần ứng dụng máy chủ web, trình duyệt sẽ không thể nói chuyện với một cơ sở dữ liệu truyền thống.
Tôi tin rằng các tùy chọn duy nhất của bạn về mặt tập lệnh sẽ là Javascript trong trường hợp này. (Hoặc Java Applet hoặc Flash, nhưng tôi không nghĩ bạn muốn điều đó)
Tôi khuyên bạn nên xem xét webkit nhúng của QT. Bạn có thể sử dụng nó để nhúng trình duyệt trong một ứng dụng QT đơn giản và sử dụng nó cho hầu hết giao diện người dùng của bạn, sau đó bạn có sức mạnh của C++/QT cho chương trình phụ trợ của bạn. QT có thể liên kết mã C++ trực tiếp với Javascript.
Xem QWebFrame class, đặc biệt là phương pháp addToJavaScriptWindowObject và Qt WebKit Bridge.
- 1. Ứng dụng cục bộ html5 có thể có phiên asp.net không? (ứng dụng web cục bộ cho iPhone)
- 2. ứng dụng web tồn tại trên cả máy chủ web IIS cục bộ và máy chủ web IIS Express
- 3. IntelliJ có một máy chủ web nội bộ để phục vụ nội dung tĩnh của một ứng dụng web không?
- 4. Có thể sử dụng AWS làm máy chủ web không?
- 5. Có thể có máy chủ JMS không có máy chủ ứng dụng không?
- 6. postgresql không thể kết nối đến máy chủ cục bộ
- 7. Viết một ứng dụng web với "không có phụ trợ"
- 8. Định tuyến AngularJS mà không cần máy chủ web
- 9. Lỗi máy chủ cục bộ Rails: Không có tệp database.yml
- 10. IIS có phải là máy chủ web hoặc máy chủ ứng dụng không?
- 11. Xem máy chủ web cục bộ trên máy Mac có tên máy tính, chứ không phải IP
- 12. Ứng dụng DART có thể được lưu trữ trong máy chủ web như Apache không?
- 13. Có một hàm hoặc biến PHP cho tên máy chủ cục bộ không?
- 14. Không thể "Chạy trên máy chủ" một ứng dụng web từ Eclipse
- 15. Tôi có thể chạy hai máy chủ web trên cùng một máy tính không?
- 16. Sử dụng NuSoap hoạt động trên máy cục bộ nhưng không phải máy chủ
- 17. Có thể lưu trữ máy chủ web trong VBA không?
- 18. Triển khai dịch vụ web java mà không cần sử dụng máy chủ web
- 19. Máy chủ cục bộ MAMP không hoạt động
- 20. Cách xác định xem ứng dụng của bạn có đang chạy trên Máy chủ phát triển Python cục bộ không?
- 21. Ổ cắm Java: Tôi có thể viết một máy chủ TCP với một luồng không?
- 22. Thiết lập IIS trong máy chủ cục bộ làm máy chủ phát triển web
- 23. Ứng dụng web một trang có nên giữ một kết nối Web Socket với máy chủ hay không?
- 24. Máy chủ SQL: Máy chủ được liên kết mà không cần liên kết máy chủ?
- 25. Tôi có thể xóa ứng dụng web trong Chrome không?
- 26. Làm cách nào để gọi một tập lệnh shell cục bộ từ máy chủ web?
- 27. Máy chủ SMTP cục bộ đơn giản
- 28. trình mã hóa hoạt động tốt trên máy cục bộ nhưng không hoạt động trên máy chủ web. Lỗi 404
- 29. Viết một máy chủ web đơn giản trong Ruby
- 30. Làm cách nào để tôi viết một ứng dụng web node.js với cả mã phía máy chủ và máy khách?
Quy trình đã đưa bạn đến quyết định này là gì? – u07ch
HTTP + CSS rất tuyệt vời để tạo GUI động và di động. Nhưng một máy chủ là một sự bất tiện của một ứng dụng web địa phương có thể có nghĩa là cài đặt cần độ cao, vv Vì vậy, đó là lý do tại sao - muốn tránh máy chủ nếu có thể. – paperjam
@paperjam: Máy chủ không thực sự cần quyền root để cài đặt.Chạy trên cổng 80 cần nó nhưng bạn có thể chạy máy chủ của bạn trên các cổng khác. Chúng tôi đã thực hiện việc này để triển khai phiên bản dành cho máy tính để bàn của ứng dụng web của chúng tôi. Về cơ bản một máy chủ perl tối thiểu (ứng dụng của chúng tôi là trong perl) chạy trên một cổng ngẫu nhiên và một webkit thực thi tùy chỉnh kết nối với máy chủ. Chúng tôi đã chọn webkit để xây dựng trình duyệt tùy chỉnh của chúng tôi vì nó hỗ trợ lớn 3: Windows, Mac và Linux. – slebetman