Does your Ajax requests take long time? it’s PHP session locking problem – updated

logo php sessionHello All,

That is the 9th\10th post in my challenge for 30 days of blogging and this post have been delayed because i was insisting on writing it in Arabic and its a technical post trying to document a technical solution for Ajax requests that take long time, That problem when i started on the blog post in Arabic i found difficulty in describing it and the solution with the right words so here it is in English.

The problem

We now -and it is not a new thing- develop applications depend on Ajax up to %100 But when a web page sends two or more Ajax requests you find them take mush time and maybe finish almost in the same time.

The cause

When you send an Ajax request to a server and your PHP script starts with

then that call and lock the PHP session file on the server and as you know PHP store sessions in files on server, so the same script can not edit the same session file on the server, and that is a classic lock file condition, so any other request will call PHP file that call session_start() will wait till the first request finish to start first in first out and now most if not all PHP frameworks use session_start() as first thing in the main file.

The solution

Using session_write_close() function to write and close the session file on the server will release the session file so another request can use it and this script will continue working normally but you should know that you are not allow to store any thing in the session after using session_write_close(); in the same script but from the other request it will be ok.

Update:

I have created a test code to see the problem ad uploaded it on GitHub you can find it here ” PHP session locking problem with Ajax” you will need to add it under your local host and open the concole to see the requests  and responses time.

Happy coding :) till the next post remember to subscribe to the blog RSS feed and follow me on twitter.

Image source: codeinphp.com
Twitter button Twitter button Facebook button LinkedIn button Google+ button

كيف تقلل من عدد الطلبات requests في صفحتك الالكترونيه بنسبة 39% لتقلل الوقت المطلوب لتحميل موقعك – الجزء الثاني

WordPress Plugins

السلام عليكم

تلك هي التدوينه السابعة/الثامنة حيث كتبت في اليوم السابع و تم تعديلها في اليوم الثامن بدلا من كتابه جزء ثالث لها هذا ضمن تحدي التدوين لمدة 30 يوم  وكما وعدت أن في الفترة القادمة ستتخذ التدوينات طابع تقني أكثر اليوم اكمل الجزء الثاني لتدوينه أمس عن كيف يمكن تقليل عدد الطلبات التي ترسلها صفحات موقعكم بنسبة 39% عبر استبدال أزرار المشاركة التي طورتها الشبكات الاجتماعية -أزرار الإعجاب من فيسبوك و تويتر …- بروابط مشاركة ثابتة لمشاركة المحتوي علي تلك الشبكات, و بالتالي تقليل الوقت اللازم للانتهاء من تحميل صفحات موقعكم.

امس كنت كتبت الأكواد ألازمه لذلك ولكن بملاحظتها  يمكنك أن تستنج أن يجب أضافه تلك الأكواد بشكل يدوي داخل صفحات القالب الخاص بمدونتك إذا كنت نتحدث عن مدونه ووردبريس (ووردبريس هو برنامج لإنشاء وإدارة المدونات، أو ما يسمى باللغة الإنجليزية Blog أو Weblog، وهو برنامج حر ومجاني، يمكنك استخدامه وتعديله ونسخه كما تشاء،) وهوا البرنامج الذي أستخدمه في مدونتي هذه , إما إذا كنت تستعمل صفحات مبرمجه بشكل خاص لك يمكنك إضافة تلك الأكواد بشكل مباشر مع مراعاة تعديل المسار الذي تتواجد فيه الصور.

بالعودة للحديث عن الوردبريس قمت بإنشاء إضافة لاستخدامها مع أي قالب تستعمله في مدونتك الإضافة في مراحلها الأولية وسيتم أضافه بعض الخصائص عليها حتي الآن ما تقوم به الإضافة هوا أضافه سطر يحتوي علي أيقونات كل من فيسبوك, تويتر, لنكدان و جوجل+ بالإضافة إلى رابط للتعليقات. كما هوا مبين بالصورة

social

الإضافة تعتمد علي داله function واحدة هي ما تقوم بإضافة المحتوي المكتوب مسبقا في داخل الإضافة و إضافة الأزرار تكون وقت الاستعراض كل مره أي لا يتم حفظ تلك الأزرار في قاعدة البيانات, و هذا هوا الكود الخاص بتلك ألداله

 كما هوا ملاحظ لمن لديه خبرة في تطوير الإضافات للوردبريس الإضافة تعتمد علي مجموعة من الصور موجودة في نفس المجلد الخاص بالإضافة تحت مجلد آخر اسمه images ويمكنكم أستبدال تلك الصور بالصور التي تريدون و موجود نسخ عن تلك الصور في مجلد الإضافة علي GitHub. الإضافة تعمل علي إضافة أزرار الشبكات الاجتماعية للتدوينات فقط ولا تعمل علي الصفحات و تضيفها لهم في صفحة التدوينه أو داخل ما يعرف بالـ loop.

يمكنكم تحميل الإضافة من علي GitHub و سيتم تطويرها إن شاء الله لتحمل المزيد من الخصائص و إضافتها علي الموقع الرسمي لوردبريس, حتي هذا الوقت لمتابعه باقي التدوينات في التحدي يمكنك متابعة المدونة من خلال الـ RSS او متابعتي علي تويتر @eslam_mahmoud

الصورة من onlinemediamasters.com
Twitter button Twitter button Facebook button LinkedIn button Google+ button

كيف تقلل من عدد الطلبات requests في صفحتك الالكترونيه بنسبة 39% لتقلل الوقت المطلوب لتحميل موقعك

 requests-57

السلام عليكم

تلك هي التدوينه السادسة في تحدي التدوين لمدة 30 يوم و اليوم أريد أن أتحدث في الفترة القادمة بشكل تقني أكثر, و اليوم في عصر الشبكات الاجتماعية و عدد الـ Likes هوا الحاكم لمدي انتشار الأخبار و المحتوى الإلكتروني و الكل يسعى للمزيد منه لذا الجميع يسعى لأضافه أزرار المشاركة من الشبكات الاجتماعية المختلفة تويتر, الفيسبوك و لنكدان… ربما أيضا بنترست و كل الشبكات الاجتماعية الأخرى و أضافه المزيد و المزيد من تلك الأزرار يعني أضافه المزيد من الوقت المطلوب للانتهاء من تحميل صفحة موقعك.

كنت استخدم تلك الأزرار من قبل في مدونتي هذه وكنت أتابع المدة و عدد الـ requests التي يتم إرسالها من الصفحة لخوادم الشبكات الاجتماعية المختلفة و وجدت صفحة عادية مثل تدوينه “تحدي التدوين لمدة 30 يوم” كانت ترسل حوالي سبع و خمسون طلب لمختلف الخوادم, اعتبرت هذا الرقم كبير و عملت علي تقليصه حتي وصلت إلي خمس و ثلاثون أي اقل بنسبة 39% من الرقم الأول كيف كان هذا مع الحفاظ علي أتاحه الفرصة للزوار لمشاركة محتوي الموقع علي الشبكات الاجتماعية؟

الفكرة في أستبدال تلك الأزرار التي تعطيها الشبكات الاجتماعية ب مجموعة من الصور مستضافة علي نفس الخادم server الذي يستضيف موقعي و أضافه رابط لمشاركة التدوينه علي الشبكات الاجتماعية حيث لكل شبكة رابط إذا ضغط علية يتم مشاركة المحتوي علي تلك الشبكة الاجتماعية, تذكر أن تستبدل رابط موقعي http://eslam.me برابط موقعك و أيضا الصورة بالصور المناسبة

فيسبوك

تويتر

لنكدان

جوجل+

 

requests-35

قد لا تكون النتيجة النهائية مثل أزرار الشبكات الاجتماعية الأساسية ولا تعرض عدد الضغطات لكن لكل منهم مميزاته و عيوبه ويمكن أن يكون هناك جزء أخر من تلك التدوينه نقوم فيه بتطوير طريقه العرض, حتي هذا الوقت يمكنك متابعة المدونة من خلال الـ RSS او متابعتي علي تويتر @eslam_mahmoud

Twitter button Twitter button Facebook button LinkedIn button Google+ button

عن خدمة العملاء في شركة اتصالات مصر

bad customer service

السلام عليكم

تلك هي التدوينه الخامسة في تحدي التدوين لمدة 30 يوم و اليوم أريد أن أتحدث عن خدمة العملاء و موقف كلاسيكي من سوء خدمة العملاء من شركة اتصالات مصر تحدثت من قبل عن تجربة سيئة مع موزع خدمة شركة تي اي داتا و اليوم كان الدور علي ممثل شركة اتصالات مصر كم كنت أتمنى أن تكون تلك المكالمة مسجلة.

سبب المكالمة كان بداعي تسجيل خط تليفون من شركة اتصالات كان يعمل بالفعل لفترة طويلة و ارسلوا اكثر من رسالة لتأكيد البيانات و بالفعل اتصلت بالشركة لتأكيد البيانات وبعد التأكيد طلب مني ممثل خدمة العملاء التوجه لفرع الشركة لتأكيد البيانات مرة أخرى ليس هنا المشكلة بل حين اخبرني أن هذا يجب أن يتم حتى لا يتم إيقاف الخط ! لا توجد مشكلة حتي سألت عن ما الإطار الزمني الذي يجب أن اذهب فيه للفرع قبل أن يتم إيقاف الخط و الإجابة كانت “زاي ما تحب” !! لم افهم هنا كيف يكون الوقت متاح لي بشكل مفتوح و أنا من المفترض أني معرض لفقدان الخط في وقت لا اعلم حدوده.

تحول الموقف من سيء لأسواء حين أصررت علي فهم تلك النقطة و كل ما يمككني أن أقول أن ممثل ما يقال عنه خدمة العملاء اقل ما يقال عن أسلوبه أسواء ما يكون, خلاصه ما قال أن لي حريه أختيار الوقت ولهم حريه غلق الخط -عجبا كلم أيها العملاء أتعتقدوا أن يمكنكم الاتصال و إزعاج ممثل خدمة العملاء- بالفعل الإحساس كان يماثل أن تتصل بشخص لا تعرفة في منزلة قبل الفجر وتخبره انك تشعر بالملل وتود الحديث, يا لك من عميل مزعج !!

حاليا ابحث عن ما يمكن القيام به للتعبير/التبليغ عن سوء المعاملة و قلة المعلومات أذا كان لدي أحدكم خبره في مثل هذا الأمر أتمني أن يشاركني بها, أو إذا لديكم تجربة سيئه مع خدمة العملاء أتمنى أن تشاركوني إياها.

لمتابعه باقي التدوينات في التحدي يمكنك متابعة المدونة من خلال الـ RSS او متابعتي علي تويتر @eslam_mahmoud

الصورة من tikr.com
Twitter button Twitter button Facebook button LinkedIn button Google+ button

لماذا علي الجميع أن يمارسوا ركوب الدراجات؟

cycling

السلام عليكم

تلك هي التدوينه الرابعة في تحدي التدوين لمدة 30 يوم و اليوم أريد أن أتحدث عن ركوب الدراجات, منذ فترة تحدثت عن نفس الموضوع في تدوينه بعنوان “ثلاث شهور من التبسيط و التقليل” وكنت أتحدث عن تجربتي في مدينة الزحام القاهرة و عن استعمالي لدراجة في التنقل بين مكان العمل و البيت و كانت فترة من امتع الفترات في حياتي حتي أن حين عودتي للإسكندرية قررت أن أخذ الدراجة معي وهوا شيء لم تصدقه والدتي لصعوبة نقلها حتي وجدتني في البيت و معي الدراجة :D

في تلك الفترة استعملت الدراجة أيضا للذهاب للعمل هنا في الإسكندرية و للرياضة و أفادتني كثيرا و لنفس تلك الأسباب اعتقد أن علي الجميع اقتناء دراجة و ممارسة ركب الدراجات خصوصا أننا الآن في نهاية عام 2014 و علي مقربه من بداية العام الجديد و هي الفترة التي يهتم الناس فيها بتحديد أهداف العام الجديد يمكن أن تكون تلك فرصة ممتازة لوضع ركوب الدراجة من أهداف العام الجديد.

أما عن أسباب تشجيعي لهذا من أهمهم

1- النشاط, حيث يكسبك ركوب الدراجة إلي العمل نشاط في بداية اليوم لم اشعر بمثله في أي وقت أخر ولم تستطيع أي من المنبهات التي تعتمد علي الكفاين ان تشعرني بمثل هذا النشاط حيث تم أسبات هذا علميها لمساعده الدراجة علي تحريك الدورة الدموية في الجسم – هل تتذكروا تمارين الصباح في المدرسة التي لم نكن نقوم بها كانت لنفس الهدف-

2- وسيلة مواصلات افضل بكثير, إذا كنت ممكن يستخدموا المواصلات العامة و لا تحب أوقات الانتظار أو الزحام لغرض الركوب أولا بالطبع الدراجة تحل تلك المشاكل و انسب كثيرا و إذا كنت ممن يمتلكوا سيارة و تعاني من صعوبة في إيجاد مكان لركنها أيضا الزحام فالدراجة اكثر انسيابية علي الطريق المزدحم ولا نحتاج تفسير الأسباب :D

3- هناك أسباب كثيرة منها المادي و قيادة الدراجة توفر ماديا و صحيا و أيضا اكثر أفاده للبيئة إذا كنت تشتكي من كثرة العوادم و الجو الخانق فالحل بين يديك, لكن الأهم من كل هذا أن هناك سبب يجده كل من يركب الدراجة وهوا أقوى سبب بالنسبة له كل ما عليك هوا التجربة و عندها أعدك انك ستجد سبب يدفعك إلي إعادة التجربة ثم عدم الاستغناء عن الدراجة.

لمتابعه باقي التدوينات في التحدي يمكنك متابعة المدونة من خلال الـ RSS او متابعتي علي تويتر @eslam_mahmoud

Twitter button Twitter button Facebook button LinkedIn button Google+ button

كم ينبغي ان يكون مقدار الشفافيه في الشركات؟

Buffer

السلام عليكم

تلك هي التدوينة الثالثة في تحدي التدوين لمدة 30 يوم و اليوم أريد أن أتحدث عن مقدار الشفافية في شركات التقنية وخصوصا في ثورة الشركات الناشئة والتي هناك الكثير منهم يقوم بتطبيق نموذج  شركات أجنبيه لكن إذا تحدثنا عن مقدار الشفافية في تلك الشركات نجد أن تلك النقطة قد تكون اكثر نقطة يتم تجاهلها عن عمد, ما أثارني اليوم و حفزني للكتابة عن هذا الموضوع نتيجة لمتابعتي لمدونة شركة GrooveHQ و أخر تدوينه اليوم التي اعلنوا فيها عن وصولهم لـ 100,000$ دخل في الشهر.

المتابع لشركة GrooveHQ يعرف بالطبع عن مدونتهم الشهيرة حيث يسجلوا فيها رحلتهم بكل صعابها و الدروس المستفادة من المشاكل التي يواجهونها و في مدونتهم تجد الكثير من الأرقام التي تعتبر من الأسرار الكونية في شركات اصغر بكثير في الحجم في عالمنا العربي, ما قامت به شركة GrooveHQ انها منذ سنتين أنشأت مدونة لتوثيق رحلتهم في عالم ريادة الأعمال و متابعة وصولهم لهدفهم المادي 100,000$ دخل في الشهر و حققوا اليوم حلمهم وكما قال المؤسس

هذه المدونة هي ما تمنيت أن اقرأ حين أسست شركتي أول مرة, ستحتوي علي الدروس المستفادة من رحلتنا.

أيضا مثال قد يكون اكبر و أقوى في الشفافية بالطبع شركة Buffer التي تقوم بتقديم خدمة جدولة المنشورات الخاصة بك و نشرها في مواعيد محددة علي الشبكات الاجتماعية المختلفة, ما تقوم به شركة Buffer من شفافيه يفوق كل الشركات الأخرى حتي أن موقع techcrunch.com يتحدث عن مدى شفافيه الشركة أذا أردتم أن تروا إلي أي مدى فلتعلموا أن الشركة توفر كافة رواتب و نسب ملكية جميع الشركاء و أيضا تطبيق لتوضيح دخل الشركة بشكل تفصيلي يمكنكم مراجعة كل تلك التفاصيل من خلال تلك التدوينه بالمناسبة الشركة تتبع مبدأ العمل عن بعد بنسبة 100% لكل الموظفين.

هذا كان مثال يدعوا للتفكير في مقدار الشفافية في الشركات ولا داعي لذكر الوضع في اغلب شركاتنا العربية التي تغيب فيها وضوح الرؤيا و الهدف بالنسبة للموظفين لا نتحدث عن تفاصيل بل عن الأساسيات. هل لدي أي منكم أمثله لاحد الشركات العربية التي تهتم بالشفافية؟

لمتابعه باقي التدوينات في التحدي يمكنك متابعة المدونة من خلال الـ RSS او متابعتي علي تويتر @eslam_mahmoud

Twitter button Twitter button Facebook button LinkedIn button Google+ button

Subscribe: RSS | Facebook | Twitter | Google Plus