ওয়েবঅ্যাসাব্ল্যাশনে ডিওএম অ্যাক্সেস করুন


10

আমি সম্প্রতি আমার কয়েকটি প্রকল্পের জন্য ওয়েবঅ্যাস্পেসব ব্যবহার শুরু করেছি। আমি এটি করছি কারণ আমি শুনেছি জাভাস্ক্রিপ্টের চেয়ে ওয়াসম দ্রুত।
আমি যখন আমার প্রথম ভাস্ম প্রকল্পটি শুরু করেছি তখন বুঝতে পেরেছিলাম যে সি ++ এ ডিওএম কীভাবে পরিচালনা করতে হয় তা আমি জানি না।
ওয়াস্ম ব্যবহার করে এটি করার কোনও উপায় আছে?


ডিওএমকে পরিচালনা করা অর্ধেক যাত্রা, আপনাকে জাভাস্ক্রিপ্ট থেকে ওয়েব সমাবেশ করতে হবে back
amirouche

আপনার স্ক্রিপ্টগুলির কার্যকারিতাটি যদি সত্যিই গুরুত্ব না দেয় তবে আমি জাভাস্ক্রিপ্টের সাথে লেগে থাকা বিবেচনা করব। ওয়েব সমাবেশ ব্যবহার করে এমন অর্ধেক ওয়েবসাইটগুলি এটি দূষিত উদ্দেশ্যে ব্যবহার করেছে বলে মনে হয় কিছু ব্যবহারকারী ইতিমধ্যে তাদের ব্রাউজারগুলিতে ওয়েব সমাবেশ নিষ্ক্রিয় করার চেষ্টা করে।
মজুথার

উত্তর:


1

আমি সম্প্রতি আমার কয়েকটি প্রকল্পের জন্য ওয়েব এসেম্বলির ব্যবহার শুরু করেছি। আমি এটি করছি কারণ আমি শুনেছি যে জাভাস্ক্রিপ্টের চেয়ে জঞ্জাল দ্রুত।

ওয়েবঅ্যাস্পাবলেশন জাভাস্ক্রিপ্টের চেয়ে দ্রুত, তবে কেবল কিছু নির্দিষ্ট ব্যবহারের ক্ষেত্রে। ওয়েবঅ্যাস্পাবলির সাহায্যে আপনার ব্রাউজারটিকে আপনার কোডটি ডাউনলোড এবং সংকলন করতে কম কাজ করতে হবে, এটিকে দ্রুত প্রারম্ভের সময় দেয়। যাইহোক, যখন ওয়েবঅ্যাস্প্যাসের রানটাইম পারফরম্যান্সটি সাধারণত জাভাস্ক্রিপ্টের চেয়ে 2 থেকে 3 গুণ বেশি দ্রুত হয়। খুব ভাল এবং ব্যবহারিক তুলনার জন্য নীচের নিবন্ধটি দেখুন:

https://hacks.mozilla.org/2018/01/oxidizing-source-maps-with-rust-and-webassembly/

তবে, ওয়েবএসাপ্যুলেশনের কোনও সরাসরি ডোম অ্যাক্সেস নেই, সুতরাং এর উচ্চতর পারফরম্যান্স সত্ত্বেও, আপনি দেখতে পাচ্ছেন যে অতিরিক্ত আই / ও ওভারহেডের কারণে আপনার ব্যবহারের ক্ষেত্রে জাভাস্ক্রিপ্টের চেয়ে ধীর।

এই কারণে, বর্তমানে লোকেরা অ্যালগরিদমিক / গণনা-নিবিড় কার্যগুলির জন্য ওয়েবঅ্যাসাব্ল্যাশনে সর্বাধিক সাফল্য খুঁজে পাচ্ছে।

আমি বুঝতে পেরেছি যে সি ++ তে ডোমকে কীভাবে পরিচালনা করতে হয় তা আমি জানতাম না। ভ্যাম ব্যবহার করে এটি করার কোনও উপায় আছে কি?

ডোমকে হেরফের করার জন্য আপনাকে জাভাস্ক্রিপ্ট হোস্টের মাধ্যমে এটি করতে হবে - আপনার ওয়েবঅ্যাস্পেস্প মডিউলটি জাভাস্ক্রিপ্টে বার্তা প্রেরণ করতে হবে যাতে এটির পক্ষ থেকে ডিওএমকে চালিত করতে বলে asking

যেহেতু এটি বেশ সাধারণ চ্যালেঞ্জ, তাই বিভিন্ন সম্প্রদায় প্রকল্প রয়েছে যার সমস্যার সমাধান রয়েছে। আপনি যেমন সি ++ ব্যবহার করছেন, এটি আপনার পক্ষে আগ্রহী হতে পারে:

https://github.com/mbasso/asm-dom

ভবিষ্যতে, এটি আরও সহজ হয়ে উঠবে, ইন্টারফেস টাইপের মতো প্রস্তাবগুলি হোস্ট পরিবেশের সাথে অন্তরঙ্গকরণকে আরও সহজ করে দিচ্ছে এবং ওয়েবআইপিএস থেকে সরাসরি ওয়েব এপিআইগুলিকে কল করার অনুমতি দিতে পারে।


1

দুর্ভাগ্যক্রমে, ডিওএম কেবল ব্রাউজারের মূল জাভাস্ক্রিপ্ট থ্রেডের মধ্যেই অ্যাক্সেস করা যায়। পরিষেবা কর্মী, ওয়েব ওয়ার্কার্স এবং ওয়েব অ্যাসেম্বলি মডিউলগুলির ডিওএম অ্যাক্সেস থাকবে না। ডাব্লুএএসএম থেকে আপনি যে নিকটতম হেরফের পাবেন সেটি হ'ল রাষ্ট্রীয় অবজেক্টগুলিকে ম্যানিপুলেট করা যা প্র্যাক্ট / রিঅ্যাক্টের মতো রাজ্য-ভিত্তিক ইউআই উপাদানগুলির সাথে মূল থ্রেড দ্বারা প্রেরণ করা হয় ।

তাদেরকে JSON ধারাবাহিকতাতে সঙ্গে প্রায়শই রাষ্ট্র প্রেরণ করতে ব্যবহৃত হয় postMessage()বা ব্রডকাস্ট চ্যানেলTransferrableজেএসওএন সিরিয়ালাইজেশন / ডিসরিয়ালাইজেশন ওভারহেড এড়ানোর জন্য আরও পারফরম্যান্স বার্তাগুলির জন্য অ্যারেবফার্সের সাথে বিটপ্যাকিং বা বাইনারি অবজেক্টস ব্যবহার করা যেতে পারে ।


"দুর্ভাগ্যক্রমে, ব্রাউজারের মূল জাভাস্ক্রিপ্ট থ্রেডের মধ্যেই কেবল ডিওএম অ্যাক্সেস করা যায়" - যদিও এটি সত্য, ওয়েবঅ্যাস্পাবলশন ডিওমের সাথে ইন্টারঅ্যাক্ট করতে পারে না এমন কারণ নয়।
কলিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.