كيفية تشغيل WASM في المتصفح
افهم نموذج التنفيذ وراء WebAssembly: كيف يترجم المحرك WASM وينشئ مثيلًا منه ويشغّله بالتوازي مع JavaScript.
كيفية تشغيل WASM في المتصفح درس مجاني في WebAssembly (WASM) for High Performance Apps على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في WebAssembly (WASM) for High Performance Apps، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة WebAssembly (WASM) for High Performance Apps 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
WASM Is Not Interpreted Bytecode... Quite
يتم شحن WASM كملف ثنائي مضغوط يقوم محرك المتصفح بتحويله إلى كود آلة سريع — حيث يتم تجميعه وتشغيله بسرعة تقارب السرعة الأصلية، بدلاً من تفسيره سطراً بسطر. لنتابع مساره.
The .wasm Binary
وحدة WASM هي ملف .wasm: ملف ثنائي يعتمد على المكدس (stack-based) ويحتوي على أقسام للأنواع، والوظائف، والذاكرة، وعمليات التصدير. أما WAT فهي الصيغة النصية المقروءة المقابلة لها.
(module
(func (export "add") (param i32 i32) (result i32)
local.get 0
local.get 1
i32.add))Step 1: Fetch the Module
Step 1: the browser fetches the binary, usually with fetch, reading it into an ArrayBuffer.
const response = await fetch('add.wasm');
const bytes = await response.arrayBuffer();Step 2: Compile
Step 2: the engine validates and compiles those bytes into machine code, producing a WebAssembly.Module.
const module = await WebAssembly.compile(bytes);Step 3: Instantiate
Step 3: instantiation creates a live WebAssembly.Instance with its own memory and exported functions, ready to call.
const instance = await WebAssembly.instantiate(module, {});
const add = instance.exports.add;Streaming Compilation
Streaming compilation compiles while downloading — no buffering the whole file first. Use instantiateStreaming for the fastest start.
const { instance } = await WebAssembly.instantiateStreaming(
fetch('add.wasm'), {}
);Calling Exported Functions
Once instantiated, WASM exports behave like ordinary JS functions — just call them with arguments and get results back.
const result = instance.exports.add(2, 3);
console.log(result); // 5Linear Memory
Linear memory is one contiguous, resizable ArrayBuffer that both JS and WASM read and write. It's how larger data crosses the boundary.
const mem = new Uint8Array(instance.exports.memory.buffer);The Sandbox
WASM runs in a strict sandbox: no direct DOM, network, or file access — it can only call functions JS imports in. That's what keeps it safe and portable.
Importing JS Into WASM
To give WASM capabilities, pass an imports object at instantiation. WASM can then call those JS functions — the only way it reaches the outside world.
const imports = { env: { log: (x) => console.log(x) } };
const { instance } = await WebAssembly.instantiate(bytes, imports);Putting It Together
The lifecycle in one line: fetch, compile, instantiate, call. Data crosses via linear memory, and JS controls the sandbox through imports.
Quick Check
Which API both compiles and instantiates a WASM module as it downloads?
Recap
Recap: a binary is fetched, compiled, and instantiated; streaming overlaps the two; exports act like JS functions sharing linear memory; the sandbox stays safe via imports.
تعلم WebAssembly (WASM) for High Performance Apps مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 12
- الدروس
- 48
الأسئلة الشائعة
هل درس «كيفية تشغيل WASM في المتصفح» مجاني؟
نعم — نص درس «كيفية تشغيل WASM في المتصفح» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة WebAssembly (WASM) for High Performance Apps، انتقل إلى CoddyKit PRO. تتضمن دورة WebAssembly (WASM) for High Performance Apps 4 دروس في المجموع.
ماذا ستتعلم في «كيفية تشغيل WASM في المتصفح»؟
افهم نموذج التنفيذ وراء WebAssembly: كيف يترجم المحرك WASM وينشئ مثيلًا منه ويشغّله بالتوازي مع JavaScript. تتمرن على WebAssembly (WASM) for High Performance Apps مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ WebAssembly (WASM) for High Performance Apps؟
لا تُشترط خبرة سابقة. WebAssembly (WASM) for High Performance Apps على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «كيفية تشغيل WASM في المتصفح»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس WebAssembly (WASM) for High Performance Apps هذا؟
نعم. كل درس في WebAssembly (WASM) for High Performance Apps يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ما هو WebAssembly (WASM)؟
- لماذا نستخدم WASM؟ الفوائد الأساسية
- منظومة WASM وأدواتها
- كيفية تشغيل WASM في المتصفح