আমার কাছে বর্তমানে একটি অফলাইন এইচটিএমএল 5 মানচিত্রের অ্যাপ্লিকেশন রয়েছে (কাস্টম সংযোজন সহ লিফলেট এবং কেন্ডোআইআইতে নির্মিত) যাতে একটি অ্যাপ্লিকেশন রয়েছে এবং একাধিক প্ল্যাটফর্মে সূক্ষ্মভাবে কাজ করে। তবে, প্রকৃত মানচিত্র টাইলস এইভাবে সংরক্ষণ করার জন্য আমি ম্যানিফেস্টটি ব্যবহার করতে দ্বিধা বোধ করছি (পিএনজি ফাইলগুলি টিএমএস স্টাইলের টাইল ক্যাশে হিসাবে সঞ্চিত)।
সমস্যা:
- প্রায় এক হাজার পিএনজি ফাইলে প্রচুর টাইলস (10 এমবি - 50 এমবি) থাকতে পারে
- প্রাথমিক ডাউনলোডটি সত্যিই ধীর হতে পারে (এবং ব্যবহারকারীর কাছে অগ্রগতি দেখানো কঠিন)
- অ্যাপ্লিকেশন প্রকাশিত হয় বা তারা অফলাইন ক্যাশে সম্পূর্ণরূপে ব্যর্থ না হলে তা না করে ([WHWG.org] [1] এর সাথে সম্মত)
- অফলাইন ব্যবহারকারী মাঝে মাঝে পুনরায় সংযোগ স্থাপন করবেন এবং টাইলগুলির রিফ্রেশ পেতে হবে, এগুলি ক্ষুদ্র ডেল্টাস তবে অ্যাপ্লিকেশন ম্যানিফেস্ট পদ্ধতিটি সমস্ত জেএস, সিএসএস এবং পিএনজি ফাইলগুলি পুনরায় লোড করবে ম্যানিফেস্ট আপডেটগুলিতে
বিকল্প ধারণা: পিচ্ছিল মানচিত্রের টাইলগুলির সঞ্চয় থেকে ওয়েব অ্যাপ্লিকেশনটিকে আলাদা রাখুন। টাইলস একটি ওয়েব অ্যাপ্লিকেশন বন্ধুত্বপূর্ণ ডাটাবেসে সঞ্চয় করুন
হালনাগাদ:
[পাউচডিবি সম্প্রতি বাইনারি ব্লবগুলির জন্য সমর্থন যোগ করেছে। আমি ভাল প্রাথমিক ফলাফল পাচ্ছি। দেখুন: /programming/16721312/ using-pouchdb-as-an-offline-raster-map-cache ]
- এটি বেন নোলান দ্বারা প্রস্তাবিত http://bennolan.com/2011/06/03/Ofline-mapping.html
- স্টিকের মানচিত্রে অনুরূপ কাজ: http://developmentseed.org/blog/2010/oct/02/maps-stick-version-2-released/ ([অবনমিত] [২])
- এমবিটাইলস http://mapbox.com/developers/mbtiles/
- টাইলস্ট্রিম https://github.com/mapbox/tilestream
- লাউস রেমি: http://louisremi.com/2011/10/07/offline-web-applications-were-not-there-yet/
প্রশ্ন: একটি জাভাস্ক্রিপ্ট বন্ধুত্বপূর্ণ ডিবির জন্য নিম্নলিখিত পছন্দগুলি সম্পর্কে সম্মিলিত জ্ঞান (এবং অভিজ্ঞতা) কী বলে:
- SqlLite
- মনে হচ্ছে আপনার এটির জাভাস্ক্রিপ্টের সাথে কথা বলতে দেওয়ার জন্য একটি নেটিভ অ্যাপ্লিকেশন র্যাপার তৈরি করা দরকার
- উদাহরণস্বরূপ আপনাকে উইন্ডোজের একটি স্থানীয় প্রোগ্রামে ডিএলএল এবং অ্যান্ড্রয়েড / আইওএসের জন্য ফোনগ্যাপ যুক্ত করুন
- WebSQL
- অনুমোদিত হয়নি
- তবে এটি একটি এসকিউএল লাইট ছিল যা আমি হোস্ট ওয়েব সার্ভার থেকে সহজেই উত্পন্ন এবং বিতরণ করতে পারি
IndexDB
- ব্লবগুলি সংরক্ষণ করা কাজ দেখে মনে হচ্ছে: https://hacks.mozilla.org/2012/02/store-images-and-files-in-indexeddb/
- আমি যদি উদ্বিগ্ন হই যে প্রাথমিকভাবে এটিই ডিবি স্থাপনের একমাত্র উপায় way
- এটি কি মূলত কোনও এসকিউএললাইট ফাইল? আমি কি এটি বাল্ক ডিবি আপলোডের জন্য শিপ করতে পারি?
- সমাধান হিসাবে আমি এটির দিকে ঝুঁকছি। আমি কি জানি না তাদের গোছা?
প্রয়োজনীয়তা:
- ক্লায়েন্ট ওয়েব ডিবিতে দ্রুত প্রাথমিক জনসংখ্যা (ডাউনলোডের মাধ্যমে)
- বর্তমান লিফলেট টাইললেয়ার এপিআই এর সাথে সামঞ্জস্যপূর্ণ (যেমন আমি বরং কাস্টম স্তরটি লিখব না, তবে প্রয়োজনে ...) (যেমন এমবিটাইজস)
- প্ল্যাটফর্ম: উইন্ডোজ ল্যাপটপগুলি, তবে অ্যান্ড্রয়েড এবং আইওএস ট্যাবলেটগুলি পছন্দ করেছে (ইনডেক্সডিবি প্রকাশ না হওয়া পর্যন্ত আমি অপেক্ষা করতে পারি, তাত্ক্ষণিক সমর্থন প্রয়োজন হবে না)
- আমি বরং একটি নেটিভ অ্যাপ্লিকেশন (এক্সইইএস, আইওএস, অ্যান্ড্রয়েড) লিখতে চাই না তবে এটি যদি সর্বোত্তম উপায় ...
- সার্ভার সাইড জেনারেশন ওয়েব ম্যাপস (এটি একটি স্বয়ংক্রিয় প্রক্রিয়া হবে)। ব্যবহারকারী একটি অবস্থান বাছাই করে, মানচিত্রগুলি চয়ন করে এবং তারা গতিশীলভাবে রূপান্তরিত হয় এবং একটি পিচ্ছিল টাইল ক্যাশে পরিণত হয় (এই কাজটি ইতিমধ্যে মূলত সম্পন্ন হয়েছে)।
- দ্রুত বাল্ক প্রাথমিক ডাউনলোড
- মানচিত্র পরিবর্তন বদ্বীতা রিফ্রেশ (আমি স্থির স্টক সংখ্যার উপর ভিত্তি করে এই যুক্তিটি লিখব, এবং তারিখের যুক্তির আপডেট করব)
- বর্তমান লিফলেট এবং কেন্ডোআইআই ওয়েব অ্যাপ্লিকেশনটিতে ন্যূনতম প্রভাব
হালনাগাদ:
মূল পটভূমি ধারণা: ওয়েব অ্যাপ্লিকেশন মোটামুটি স্থিতিশীল থাকা অবস্থায়, আপনার অবস্থানের জন্য ফ্লাইতে স্লিপ ম্যাপ টাইলগুলি তৈরি করা হয়েছে এবং আপনি কী ধরণের সমস্যা করছেন (পিছনের শেষে)) তাই আমি প্রাথমিক 'বিগ ব্যাং' স্থানান্তরিত করার জন্য এবং তারপরে আপডেটগুলি সম্পর্কে আরও দুটি উপায় নিয়ে ভাবলাম:
জিপ ফাইল (সম্ভবত এটি ভাল ধারণা নয় - কারণ এটি সার্ভারের বোঝা যুক্ত করে) ক্লায়েন্ট মেশিনে সম্প্রসারণের জন্য ব্যবহারকারীর ইন্টারঅ্যাকশন প্রয়োজন, তবে এটি পিচ্ছিল টাইলসকে স্থানীয় ইউআরএল ব্যবহার করতে দেয়
এইচটিএমএল 5 ফাইল এপিআই: আমি এটিকে দুর্দান্তভাবে দেখিনি। তবে এটি টিএমএস ফর্ম্যাটে একটি স্থানীয় ফাইল ট্রি তৈরির বেশিরভাগ অপারেশন রয়েছে: http://www.html5rocks.com/en/tutorials/file/filesystem/ যা পরীক্ষা করা আকর্ষণীয় হবে তা হল কর্মক্ষমতা (উদাহরণস্বরূপ, আমি ওয়েব ওয়ার্কগুলি ব্যবহার করতে পারি) ব্যান্ডউইথকে ডিস্কে এবং নেট জুড়ে সর্বাধিক করতে)। ইনডেক্সডিবি ওয়েব কর্মী বান্ধব হতে ব্যাপকভাবে প্রয়োগ করা হয়নি (সিঙ্ক ইন্টারফেস: /programming/10698728/indexeddb-in-web-worker-on-firefox
লিফলেট দিয়ে ইনডেক্সডিবি ব্যবহার সম্পর্কে কিছু অতিরিক্ত তথ্য পেয়েছি:
https://github.com/calvinmetcalf/leaflet.pouch (অফলাইনের জন্য indexdb সহ কাউচডবি সিঙ্ক করে) এছাড়াও সূচিপত্র, ওয়েবএসএকএল এবং স্থানীয় স্টোরের জন্য পড়ার / লেখার গতির জন্য এখানে কিছু পরীক্ষা রয়েছে: http://jsperf.com/indexeddb -vs-LocalStorage / 15
এবং জাভাস্ক্রিপ্ট থেকে ফাইল এপিআইটি পড়তে / লিখতে এখানে কীভাবে ব্যবহার করবেন: (এবং স্টোরেজ সীমাবদ্ধতা বাড়ানোর জন্যও জিজ্ঞাসা করুন ) :
ধন্যবাদ, টম ম্যাকরাইট (ওরফে টিএমসিডাব্লু), কিছু ভাল প্রতিক্রিয়ার জন্য। আমি বাইনারি ব্লবগুলি ইনজেক্ট করার জন্য কাস্টম স্তর তৈরি করতে গেলে আপনার উদাহরণটি সত্যই সহায়তা করবে।
আমি গতকাল ইনডেক্সডডিবি দিয়ে কিছু পরীক্ষা করেছি এবং কিছু পলিফিল এবং গ্রন্থাগার ব্যবহার করে আমার মনে হয় এটি আমার সমস্যাগুলি সমাধান করবে। এখন এটিতে কিছুটা ঘামের ইক্যুইটি স্থাপন করার সময় এসেছে এবং আমি এটির প্রতিবেদন করব।
বিটিডাব্লু: আপনি যদি ক্লায়েন্ট সাইড ডাটাবেসে আমার অধ্যয়নের ফলাফল দেখতে চান তবে দেখুন:
/programming/14113278/storing-image-data-for-offline-web-application-client-side-storage-database