القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا ، فقد نربح عمولة تابعة. اقرأ أكثر.

WebAssembly هو أحد التقنيات الحديثة المصممة لتشغيل المزيد من اللغات على المتصفح مع إمكانية التشغيل التفاعلي Javascript.

WebAssembly (WASM) هو تنسيق تعليمات ثنائي مستقل عن النظام الأساسي للأجهزة الافتراضية القائمة على المكدس المصممة على شكل هدف تجميع محمول لتشغيل لغات البرمجة في بيئات تمكينية (مثل الويب والخادم تطبيقات).

باستخدام WASM ، يمكنك تشغيل العديد من لغات البرمجة ، بما في ذلك Go ، على متصفحك وتسخير ميزات اللغة. أيضًا ، تعامل مع Javascript على الويب.

الشروع في العمل مع WebAssembly في Go

يوفر Go دعمًا من الدرجة الأولى لاستخدام WebAssembly في تطبيقات Go ، ما عليك سوى إجراء بعض التكوينات وتجميع كود Go في WebAssembly.

ستحتاج إلى إجراء بعض التكوينات لتحويل كود Go الخاص بك إلى WebAssembly. سيتعين عليك تغيير بنية Go GOARCH متغير البيئة ل كان م ونظام التشغيل Go GOOS متغير ل شبيبة.

قم بتشغيل هذا الأمر في المحطة الطرفية لدليل العمل الخاص بك لإجراء هذه التكوينات.

تعيين GOARCH = wasm GOOS = js 
instagram viewer

الخطوة التالية هي تحويل كود Go الخاص بك إلى WebAssembly .كان م ملف. قم بتشغيل هذا الأمر لتحويل ملفات main.go ملف إلى ملف باسم الشفاه

go build -o lib.wasm main.go

عند تشغيل الأمر ، ستجد ملف الشفاه في دليل العمل الخاص بك.

تحتاج إلى نسخ ملف WebAssembly المصاحب لتثبيت Go في دليل العمل الخاص بك لتنفيذ ملف WebAssembly مع NodeJS على صفحة الويب.

cp "$ (go env GOROOT) /misc/wasm/wasm_exec.js" .

يقوم الأمر بنسخ ملف wasm_exec.js ملف إلى دليل العمل الخاص بك ويعمل كنقطة دخول إلى التطبيق الخاص بك.

يمكنك الآن استخدام ملف wasm_exec.js البرنامج النصي لتنفيذ ملفات WASM الخاصة بك باستخدام Go and make واجهة برمجة تطبيقات DOM المكالمات.

العقدة wasm_exec.js main.wasm

بدء خادم ويب لاستضافة موقع الويب

أضف هذا الرمز من مؤلفي Go إلى ملف HTML في دليل العمل الخاص بك لإنشاء مثيل لتيار بيانات WebAssembly باستخدام ملف إنشاء البث طريقة.



حقوق الطبع والنشر 2018 The Go Authors. جميع الحقوق محفوظة.
يخضع استخدام كود المصدر هذا لترخيص
بنمط BSD يمكن العثور عليه في ملف الترخيص.



"utf-8" />
الذهاب wasm





رمز HTML مأخوذ من Go Authors ، لإنشاء مثيل لتيار WebAssembly الذي يربط كود Go بصفحة الويب.

بدء خادم ويب لتشغيل الصفحة

سوف تفعل قم بإعداد الخادم مع http طَرد. قم باستيراد ملف http الحزمة و سجل حزمة لتسجيل الأخطاء المحتملة إلى وحدة التحكم.

يستورد (
"سجل"
"net / http"
)

يمكنك إعلان المتغيرات الخاصة بعنوان الخادم ودليل الملفات التي تريد تقديمها على العنوان.

فار (
serverAddr = ":8080"
الدليل = "."
)

يمكنك استخدام ال خادم الملفات طريقة http حزمة لخدمة الملفات في دليل محدد. ال خادم الملفات يأخذ الأسلوب في الدليل ويعيد مثيل خادم الملف.

funcرئيسي() {
serveFiles: = http. FileServer (http. Dir (الدليل))
لو يخطئ: = http. ListenAndServe (serverAddr، serveFiles) ، يخطئ! لا شيء {
سجل. فاتالن (يخطئ)
}
}

في ال رئيسي وظيفة ، لقد أعلنت عن متغير مثيل خادم ملف لخدمة الملفات في الدليل الجذر. ال استمع وخدم يخدم الأسلوب الملفات الموجودة في الدليل المحدد على المنفذ المحدد.

وظائف WebAssembly في Go

يوفر Go وظائف لاستدعاء وظائف JS والتفاعل مع DOM في ملف syscall / شبيبة طَرد.

ال شبيبة توفر الحزمة الوصول إلى بيئات مضيف WebAssembly على شبيبة / wasm بنيان. ستحتاج إلى إعداد بيئة التطوير الخاصة بك على GOARCH = wasm GOOS = js للوصول إلى الحزمة واستخدامها.

يمكنك استخدام الطرق المختلفة في الحزمة للتفاعل مع صفحة الويب الخاصة بك. إليك كيفية تسجيل الوظائف مع شبيبة طَرد.

// تعريف الوظيفة
funcمطبعة(هذا شبيبة. القيمة ، i [] js. قيمة)واجهه المستخدم{} {
يعود شبيبة. ValueOf (i [:])
}

ال مطبعة وظيفة عند التسجيل كوظيفة معاودة الاتصال ستخرج البيانات التي تم تمريرها إلى الوظيفة في وحدة تحكم المتصفح.

يمكنك تسجيل وظائف معاودة الاتصال مع تعيين طريقة عالمي طريقة شبيبة طَرد. ال تعيين يأخذ الأسلوب في معرف الوظيفة ومثيل وظيفة معاودة الاتصال.

funcوظائف إعادة الاتصال() {
شبيبة. العالمية ()."مطبعة"، شبيبة. فونكوف (مطبعة))
}

ال وظائف إعادة الاتصال طريقة يسجل مطبعة تعمل كوظيفة معاودة الاتصال التي يمكنك استخدامها في وحدة تحكم المتصفح.

WebAssembly هو ميزة تجريبية في العديد من اللغات ، بما في ذلك Go

تعد ميزات WebAssembly جديدة نسبيًا في العديد من اللغات ، خاصة وأن اللغة أصبحت مؤخرًا معيار W3C. ال شبيبة الحزمة تجريبية ، والحزمة مستثناة من وعد التوافق Go.