Ibraheem Osama Mohamed (ابراهيم اسامه محمد)

Welcome to my blog :)

مثال على البرمجه الغير متزامنه فى ويندوز 8 باستخدام JavaScript

leave a comment »

كثيرا نسمع عن البرمجه المتزامنه(Synchronous) و كثره المشاكل التى تواجه المبرمج عند استخدام العديد من امكانيات الحاسب فى نفس الوقت مثل ربط التطبيق بالشبكه العنكبوتيه او باى جهاز الكترونى او دائره الكترونيه هذه المشاكل تظهر فى ان التحكم فى التطبيق اصبح صعب و هذا المشاكل تظهر كثير للمستخدم العادى و الحل هو استخدام ما يسمى ب Thread programming و مع كثره المشاكل التى واجهه thread programming ابتكر البعض البرمجه الغير متزامنه(asynchronous).
البرمجه الغير متزامنه هى ان يتقابل تطبيقك مع العالم الخارجى او يقوم بعمل مهام ثقيله و لا يحدث بطق فى البرنامج و يكون المستخدم على قدره كامله باستخدام التطبيق و التفاعل معه.
فى الوقت السابق كانت البرمجه الغير متزامنه صعبه الممارسه و تحتاج للكثير من التدريب ولكن اليوم اصبحت اسهل بكثير و بخاصه فى ويندوز8 ستقوم باستخدامها بكل سهوله لدرجه انك من الممكن ان تكون استخدمتها من غير علم.
فى المثال القادم سوف نستخدم ال JavaScript و ال Promises
اضف مشروع ويندوز8 جديد باستخدام لغه JavaScript .
بعد ذلك قم باضافه زرار و 3 شعارات من نوع المقال  p 3 and one button . فى Defualt.html

<body style=”overflow:scroll”>

    <input type=”button” id=”SubmitButton” />

    <p id=”Paragraph1″></p>

    <p id=”Paragraph2″>

    <p id=”Paragraph3″></p>

</body>

الان افتح Default.js م اضف الاتى فى الجزء المخصص لبدأ البرنامج

var submitButton = document.getElementById("SubmitButton");
                submitButton.onclick=
                function () {
                    var dlg = new Windows.UI.Popups.MessageDialog("هل تريد ان تبدأ ب البرمجه الغير متزامنه ؟؟ ");
                    var promise1 = dlg.showAsync();
                    promise1.then(function () {
                      var promise2=  WinJS.xhr({ url: "http://search.twitter.com/search.json?q=Egypt" }).then(function (result) {
                            var p1 = document.getElementById("Paragraph1");
                            p1.innerHTML = result.responseText;
                      });

                      promise2.then(function () {
                          var promise3 = WinJS.xhr({ url: "http://search.twitter.com/search.json?q=Windows8" }).then(function (result) {
                              var p2 = document.getElementById("Paragraph2");
                              p2.innerHTML = result.responseText;
                          });

                          promise3.then(function () {
                              WinJS.xhr({ url: "http://search.twitter.com/search.json?q=Saudi" }).then(function (result) {
                                  var p3 = document.getElementById("Paragraph3");
                                  p3.innerHTML = result.responseText;
                              });
                          });
                      });

                    });
                };

الان جرب البرنامج و لاحظ الاتى عندما ضغط على الزرار ظهرت الرساله و هى رد فعل طبيعى ل Event و بعد ذلك بدأ البرنامج لوحده فى القيام بباقى المهام و كان بامكامك استخدام البرنامج كأنه لا يستخدم اى API  أخرى
فماذا حدث بدأ اظهار الرساله قام التطبيق لاعطائى وعد (Promise) و هو بمجرد انتهاء الرساله (then ) سيكون بأستطاعتى ان اقوم ببعض التغييرات و هى ان ابعث برساله الى Twitter API و اقوم بتنفيز بحث و بعد الانتهاء من البحث و الرجوع بنتيجه يعطينى وعد اخر فاقوم بعرض محتويات الرساله و استخدم الوعد الجديد فى ارسال رساله اخر الى Twitter API وهكذا الى ان ينتهى من تنفيذ المهمه المحدده له

ارجو ان تكون قد فهمت جزء البرمجه الغير متزامنه فى ويندوز 8 فى ال JavaScript
شكرا
ابراهيم اسامه محمد
@IbraheemOsamaMo

2056910448_thanks_xlarge

Advertisements

Written by Ibraheem Osama Mohamed

January 26, 2013 at 3:14 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: