الكاتب: Neil Lock

  • كيف يعمل Page Builder Sandwich

    How-Page-Builder-Sandwich-Worksيقدم هذا المقال ملخصاً موجزاً عن كيفية عمل Page Builder Sandwich، وهو يهدف إلى أن يكون دليلاً تمهيدياً للمهتمين بمعرفة كيفية تكامل أداة بناء الصفحات لدينا مع مختلف العناصر في ووردبريس. لن أخوض في الميزات الفردية لـ Page Builder Sandwich، فإذا كنت ترغب في الاطلاع عليها، توجه إلى صفحة مقاطع الفيديو الخاصة بنا حيث نستعرض كل ميزة بشكل فردي عبر تسجيلات شاشة قصيرة.

    إذا كنت ترغب في معرفة ما يميز Page Builder Sandwich عن غيره من أدوات بناء الصفحات الأخرى المتوفرة، فاطلع على مقالنا كيف يختلف Page Builder Sandwich عن البقية.

    Where is the page builder?

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

    على عكس العديد من أدوات بناء الصفحات الأخرى، يتواجد Page Builder Sandwich في الواجهة الأمامية لموقعك. وإذا كنت في الواجهة الخلفية، فقد وفرنا زراً باسم “Frontend” بجانب أزرار محرر المحتوى ينقلك مباشرةً إلى الواجهة الأمامية لصفحتك.

    يتيح لك Page Builder Sandwich تحرير منشوراتك، وصفحاتك، ومحتوى أنواع المنشورات المخصصة (custom post types). ومع ذلك، فإنه لا يسمح لك بالتحرير المباشر لمنشورات المدونة المجمعة في الصفحة الرئيسية، وغيرها من المناطق غير الفردية في موقعك. فكر في الأمر ببساطة على هذا النحو: إذا كان ما تريد تحريره يحتوي على محرر محتوى في الواجهة الخلفية (مثل “منشور جديد” و”صفحة جديدة”)، فإنه يمكن استخدام Page Builder Sandwich. يمكنك تحرير صفحاتك الفردية ومنشورات مدونتك، وإذا كان لديك على سبيل المثال إضافة توفر قوائم مطاعم أو عناصر معرض أعمال، فيمكنك تحريرها أيضاً.

    أثناء وجودك في الواجهة الأمامية، وضعنا زراً أزرق اللون باسم “Edit with Page Builder Sandwich” في شريط الإدارة الخاص بك. ما عليك سوى النقر عليه لبدء تحرير صفحتك.

    تحرير المحتوى المباشر

    مع Page Builder Sandwich، جعلنا تحرير المحتوى سهلاً وخالياً من المتاعب قدر الإمكان. تحرير المحتوى مباشر وسهل للغاية؛ كل ما عليك هو النقر والكتابة. الأمر بهذه البساطة.

    The inspector

    نقدم لكم: الفاحص (The inspector)

    لقد لاحظنا أن العديد من أدوات بناء الصفحات تحتوي على الكثير من النوافذ المنبثقة. شخصياً، لا أحب النوافذ المنبثقة لأنها تشتت الانتباه وتبدو وكأنها تقول لك في الأساس “توقف عما تفعله حتى تملأ هذه الحقول أولاً”. إنها تفسد سلاسة تجربة التحرير التي يفترض أن تكون ممتعة. ولهذا السبب، قمنا بالحد من استخدام النوافذ المنبثقة تماماً، وأنشأنا بدلاً من ذلك “الفاحص” (inspector).

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

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

    التكامل مع قوالب ووردبريس

    بطبيعته، لا يتضمن Page Builder Sandwich أي تنسيقات تقريباً. عندما تقوم بتحرير المحتوى الخاص بك، فإن التنسيقات والأنماط التي تراها تعتمد في الغالب على قالبك.

    التكامل مع الرموز القصيرة (Shortcodes)

    تعد الرموز القصيرة جانباً مهماً في ووردبريس، وعلى الأرجح ستستخدم مجموعة منها في موقعك. يتعامل Page Builder Sandwich معها بشكل ممتاز؛ حيث ستظهر الرموز القصيرة الخاصة بك معروضة ومطبقة في الواجهة الأمامية. كما تظل الرموز القصيرة قابلة للتحرير، والأفضل من ذلك، بعد الانتهاء من تعديل رموزك القصيرة، سيتم عرضها مرة أخرى متضمنةً تغييراتك.

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

    No bloat

    ماذا عن بطء الموقع والتعليمات البرمجية الزائدة؟

    من يحب المواقع البطيئة؟ لسنا نحن، وبالتأكيد لست أنت. لقد حرصنا على أن يكون تأثير Page Builder Sandwich على أداء موقعك قريباً من الصفر. عند تسجيل الخروج، وفي الحد الأدنى، لا يتم تحميل سوى أنماط CSS الخاصة بالصفوف والأعمدة، جنباً إلى جنب مع نصوص JS وCSS الضرورية للرموز القصيرة التي استخدمتها فقط.

    للمطورين

    إذا كنت مطوراً ولديك رموز قصيرة في إضافات ووردبريس الخاصة بك، فإن Page Builder Sandwich يوفر واجهة برمجة تطبيقات للرموز القصيرة (Shortcode API) تتيح لك بسهولة تزويد عملائك بحقول لإنشاء الرموز القصيرة وتعديلها بسهولة.

    وإذا كنت ترغب في توسيع الإمكانيات بشكل أكبر أو التكامل مع بعض أجزاء Page Builder Sandwich، فلدينا أيضاً مجموعة من خطافات الإجراءات والفلاتر (action and filter hooks) المفيدة التي يمكنك استخدامها.

  • لماذا انتقلنا من EDD إلى Freemius

    لماذا انتقلنا من EDD إلى Freemius

    When Page Builder Sandwich was launched in 2016, we were using Easy Digital Downloads. In 2017, we moved to Freemius. Here’s why we switched:

    ما هو EDD ولماذا اخترناه؟

    يعد Easy Digital Downloads (EDD) بديلاً شائعاً ذاتي الاستضافة لـ eCommerce / WooCommerce على ووردبريس. بشكل افتراضي، لا يمكنك حقاً بيع منتج ووردبريس باستخدام EDD، لكن إضافة Software Licensing التابعة له تجعله مثالياً لبيع الإضافات. وتولت الإضافة أيضاً مهمة إنشاء مفاتيح التراخيص والتحقق منها.

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

    Since it worked well, and since we’re a big fan of Pippin Williamson, this was Sandwich’s first option.

    كيف يعمل مقارنة بـ Freemius، ومتى انتقلنا إليه؟

    في عام 2016، أرسل لنا فوفا فيلدمان (Vova Feldman)، المطور الرئيسي والمؤسس المشارك لـ Freemius، رسالة بريد إلكتروني تحتوي على ملخص شامل عن Freemius، موضحاً أنه أكثر من مجرد حل للتجارة الإلكترونية — فهو يوفر ميزات أخرى مثل حلول التحليلات والرؤى, أداة لأتمتة التسويق، وأداة دعم مدمجة حتى يتمكن العملاء من التواصل معك مباشرة من لوحة تحكم ووردبريس.

    في البداية، استخدمنا فقط ‘Freemius Insights’ — إحدى ميزات Freemius — بدافع الفضول بشأن التحليلات. وقد ساعدنا ذلك بالفعل في فهم الأسباب الشائعة التي تجعل المستخدمين يقومون بإلغاء تثبيت إضافتنا في ذلك الوقت.

    كما ساعدنا أيضاً في اتخاذ قرارات تستند أكثر إلى البيانات من خلال استطلاعات رأي سريعة للعملاء. على سبيل المثال، إذا أراد مستخدم إلغاء تثبيت إضافتنا، يظهر نموذج ملاحظات سريع يسأله عن سبب اختياره لإلغاء التثبيت. ساعدتنا هذه الملاحظات في فهم احتياجات عملائنا.

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

    بصرف النظر عن التحليلات، تم تصميم منصة Freemius بحيث يمكنك استخدامها بسهولة لبيع منتجات ووردبريس الخاصة بك بشكل أكثر فعالية!

    بعد الموازنة بين الإيجابيات والسلبيات، انتقلنا إلى Freemius في يناير 2017. وإليكم السبب:

    يتيح Freemius للعملاء شراء منتجك مباشرة من لوحة تحكم ووردبريس الخاصة بهم

    Instead of being redirected to an external website, Freemius allows customers to purchase straight from their WordPress Dashboard. This made huge impact on sales of course! Generally, the fewer things the user has to do to purchase something, the more likely it is that they actually make the purchase.

    مع EDD، كان على المهتمين بـ Sandwich الخروج من تجربة بناء الصفحات إلى موقع خارجي لشراء مفتاح الترخيص. وكان عليهم المرور بعدة نقرات — والمزيد من المشتتات — قبل أن يتمكنوا أخيراً من إتمام الشراء.

    في المقابل، يتيح Freemius للعملاء الشراء مباشرة من لوحات تحكم ووردبريس الخاصة بهم أثناء تجربتهم لـ Sandwich — دون الحاجة إلى الانتقال إلى موقع مختلف لإتمام الشراء.

    جعلت هذه السهولة برمتها عملية الشراء أكثر سلاسة وسهولة بعشر مرات بالنسبة للعملاء، مما أدى إلى زيادة ملحوظة في المبيعات.

    المطورون حريصون أيضاً على نجاحك

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

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

    فوفا وفريقه متعاونون للغاية. لقد قدموا لنا نصائحهم وحيلهم الخاصة حول كيفية تحقيق المزيد من الإيرادات، وكيفية تحسين إضافتنا، وكيفية الاستفادة من Freemius لمصلحتنا. وقد ساهم كرمهم في مشاركة المعلومات في نمو Sandwich.

    الخلاصة: إذا كنت مطور منتجات ووردبريس وترغب في تحقيق الدخل، فإن Freemius هو خيارك الأمثل.

    يهدف Page Builder Sandwich إلى تعزيز السهولة البديهية وتجربة المستخدم من خلال بناء الصفحات. ويقوم Freemius بذلك أيضاً: فهو يجعل التجربة أكثر سلاسة وفعالية لكل من العملاء والبائعين على حد سواء.

    منذ الانتقال إلى Freemius في عام 2017، أصبح عملاؤنا أكثر رضا، وانخفض معدل إلغاء التثبيت، وحققنا مبيعات أفضل بشكل عام. إذا كنت تتطلع إلى تحقيق الدخل من إضافات أو قوالب ووردبريس الخاصة بك، فإن Freemius هو بالتأكيد الخيار الأمثل.

    ميزاته أفضل من المنافسين. وساعدنا في اتخاذ قرارات أذكى للتحسين والتطوير. كما يقدم فريقهم دعماً استثنائياً. إذا كنت مطور منتجات ووردبريس، نأمل أن تختبر نفس الأثر الإيجابي الذي عشناه مع Freemius.

  • سنطلق شيئاً ضخماً قريباً جداً.

    In a few short months, we’ll be relaunching as Frontly Builder.

    في الوقت الحالي، لا يزال قيد التطوير المكثف. ولكن على الرغم من ذلك، نحن متحمسون للغاية لنعرض لكم ما كنا نعمل عليه. هنا، سنتحدث عن سبب قيامنا بهذا التحول، وكيف سيكون Frontly مختلفًا عن PBS، وما الذي يجب أن تتطلع إليه.

    من Page Builder Sandwich إلى Frontly Builder

    Before the idea of Sandwich, we noticed a little pattern with page builders everywhere: A lot of them were difficult to use.

    For example, some of these builders would have you go through numerous pop-ups and other settings if you want to add something as simple as an image, a row, a button.

    And if you wanted to change a column’s settings, clicking on the edit button takes you to yet another pop-up that requires you to input settings like size and margins through dropdown options that aren’t very flexible.

    It was frustrating because we knew that page builders should exist to make things easier for users, not the other way around.

    Other wordpress page builders
    Other WordPress Page Builders

    This is how we came up with Page Builder Sandwich.

    We wanted to introduce a builder that was going to maximize users’ experience when creating webpages, allowing them to create awesome things the fast and easy way.

    We received lots of great feedback that allowed Sandwich to evolve. And the more our audience grew, the more suggestions we received on how we could further improve the plugin.

    We were in a state of constant development, and we loved it.

    Page Builder Sandwich has true front-end power, and so will Frontly Builder.

    إعادة تعريف ما يعنيه العمل على واجهة أمامية حقيقية

    كان تطور Sandwich مستمرًا.

    Apart from the feedback (both negative— things we could work on; and positive ones— which we knew we had to retain), Sandwich’s capacity to grow increased, too. We kept finding more and more ideas and solutions to further improve PBS.

    And the more wants and needs from PBS arose, the more our code’s main foundation got tweaked.

    تخيل شطيرة حقيقية بكل إضافاتك المفضلة.

    بالتأكيد، سيكون طعمها رائعًا، ولكن كيف ستتسع في فمك؟ كيف ستخدم غرضها الأساسي — وهو أن تُؤكل؟

    This is kind of what happened with PBS. We realized that so much more could be done with it with an even more efficient, stronger foundation. That we could take it further.

    كما ذكرنا، فإن Page Builder Sandwich في حالة تطور مستمر.

    Frontly is the next step to that evolution.

    You’ll still get an awesome support team, theme and plugin compatibility, and more.

    هذا ليس وداعًا لـ Page Builder Sandwich.

    It’s a hello to Frontly.

    So what makes Frontly different from Page Builder Sandwich?

    We’ve been working really hard to maximize Frontly’s development. The goal now is to make it an insanely better version of PBS — to embody what it means to operate on true front-end.

    Right now, we’re focusing on further improving Frontly’s UX and UI. We’ve worked on giving it a smoother look, a more user-friendly experience, and features that’ll let you build professional-looking websites in even less effort and less time.

    Questions on Frontly?

    We have a short FAQ post you can check out. Add a comment below so we can add your questions to our list!

    إنه قادم في القريب العاجل.

    While we’re crazy excited to show you guys what we’ve come up with, we wanna make sure everything is just right for you. So leave us your email to get first dibs on updates, tips and trick, and big promos on the release date.

    We are relaunching as Frontly Builder.

    Leave your email so you don’t miss out.

     
  • سر تقديم دعم عملاء جيد

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

    ولو لم يكن هذا المقهى تحديداً يقع في طريقي إلى المكتب، لكنت على الأرجح قد غيرت وجهتي المفضلة للحصول على الكافيين منذ وقت طويل.

    والآن، لهذا النادل نظير في مجتمع الدعم الفني عبر الإنترنت.

    ولكن نظراً لعدم قدرتك على رؤية تعابير الوجه الجامدة أثناء المحادثات عبر البريد الإلكتروني والدردشة المباشرة، فإن تحديدهم يكون أقل وضوحاً بعض الشيء. لكن صدقني، إنهم موجودون.

    خدمة العملاء الجيدة أمر أساسي لنمو عملك، نعم. ولكن مجرد توفير دعم العملاء ليس كافياً.

    يتعين عليك تقديم خدمة جيدة (إن لم تكن ممتازة) تجعل عملاءك يشعرون بأهميتهم، لأنهم كذلك بالفعل. ففي النهاية، هم سبب وجود عملك.

    ومع ذلك، لا يدرك الجميع أنه لا يكفي أن تكون خدمة العملاء مجرد خدمة تُقدَّم دون جودة.

    في الواقع، حتى لو كان من المسلم به أن الشركات تمتلك فرق دعم تساندها، فإن الإحصاءات الحديثة تُظهر أن 68% من العملاء يغادرون شركة ما لأنهم يعتقدون أنها لا تهتم بهم (في حين ينبغي لها ذلك).

    ولكن ما الذي يضمن حقاً تقديم دعم عملاء جيد، وكيف تحافظ عليه؟

    من زميل متخصص في الدعم إلى آخر، إليك بعض العوامل الرئيسية للحفاظ على سعادة عملائك — وبالتالي، سعادة عملك وازدهاره.

    1. استفد من التعليقات والآراء السلبية

    سواء كان ذلك في قطاع التكنولوجيا أو غيره، فإنك دائماً ما ستتلقى تعليقات وآراء حول منتجك بطريقة أو بأخرى. ولكن احذر: فلن تكون جميعها أشياء ترغب في سماعها.

    ويجب أن تكون مستعداً لذلك.

    لكن أكثر من مجرد الاستعداد، ما عليك فعله هو تقبل التعليقات السلبية والاستفادة منها.

    فعاجلاً أم آجلاً، ستنهال عليك الشكاوى، وطلبات الميزات، وتعليقات الاستياء.

    دوّن ملاحظاتك عنها.

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

    على سبيل المثال، إذا تلقيت شكاوى عديدة تفيد بأن واجهة المستخدم الخاصة بك يصعب التنقل فيها، فهذا يعني أن عليك تغيير واجهة المستخدم الخاصة بك.

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

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

    2. دعهم يعرفون أنك إنسان

    أحد الأمور التي تثير استيائي حقاً هو تلقي رسائل بريد إلكتروني تبدو جامدة وكأنها ردود تم إنشاؤها تلقائياً.

    تعتمد الشركات الضخمة عادةً على روبوتات وردود تم إنشاؤها تلقائياً بالفعل، ولكن ذلك لأن علاماتها التجارية راسخة وموثوقة بالفعل في السوق.

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

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

    شخصياً، أشعر أن الرسمية المفرطة تعطي انطباعاً بأنك لا تقدم الدعم لأنك مهتم — بل تقدم الدعم لمجرد أنها وظيفتك ويتعين عليك القيام بها.

    وهذا أمر غير مقبول على الإطلاق.

    لذا، ما لم يكن ذلك منصوصاً عليه في سياسة الشركة، تذكر أن تبذل جهداً لجعل عملائك يعرفون ويشعرون بأنه يمكنهم التحدث إليك. وأنك متواجد لتقديم المساعدة الفعلية، وليس لمجرد إطلاق ردود آلية لأن هناك من يدفع لك مقابل ذلك.

    3. لا تتركهم معلقين أبداً

    ربما يكون هذا الأمر بديهياً للغاية.

    إياك، على الإطلاق، أن تترك عميلك معلقاً دون حل — أو على الأقل حل سريع مؤقت — لمشكلته.

    ومع ذلك، قد لا يمكن في بعض الأحيان تجنب المشكلات التي ليس لها حلول مباشرة. على سبيل المثال، لنفترض أن عميلاً يستفسر عن ميزة تعلم أنها لن تصدر في أي وقت قريب.

    ماذا ستقول؟

    “عذراً، لا نملك هذه الميزة. مع السلامة.

    مع التحية،
    الدعم الفني”

    حسناً… هذا التصرف لن يجدي نفعاً على الإطلاق.

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

    “سنتواصل معك مجدداً بمجرد توفر المزيد من الألوان!” والتزم بما وعدت به.

    4. الردود السريعة مهمة — لكن الردود الفعالة مهمة أيضاً

    نعم، من المهم الرد على عملائك في أسرع وقت ممكن. ولكن مجرد إرسال رد ليس كافياً.

    يجب أن تتضمن ردودك مضموناً مفيداً، وأن تقدم لعملائك حلاً أو بديلاً للمشكلة المطروحة (انظر النقطة رقم 3). فلا يمكن لأحدهما أن ينجح دون الآخر.

    نعم، عملاؤك في عجلة من أمرهم — لكن تقديم رد مبتور وغير متقن لهم هو أمر سيء تماماً كعدم الرد إطلاقاً (وربما يترك انطباعاً أسوأ، لأنه بمجرد الضغط على زر “إرسال”، لن يكون هناك مجال للتراجع).

    5. تجنب تقديم وعود لا يمكنك الوفاء بها

    “لا تقلق. سنصلح لك ذلك في غضون ساعة!”

    إذا استغرقت وقتاً أطول من ذلك، فإنك تعرض سمعتك وسمعة شركتك لكارثة محققة.

    ورغم أن الأمر سيبدو جذاباً لعملائك في البداية، إلا أن عدم الوفاء بالوعد قد يؤدي إلى ردود فعل أكثر ضرراً.

    إذا كنت تعلم أنك ستستغرق 24 ساعة لتقديم حل، فكن صادقاً وأخبرهم بذلك. سيكونون أكثر سعادة بمنتج يعمل يستغرق إنجازه بعض الوقت، بدلاً من منتج تم تجهيزه على عجل وبالكاد يعمل.

    خاتمة

    إذن، ما هو السر وراء تقديم دعم عملاء جيد؟ إياك أن تستهين به أبداً.

    عملاؤك هم القوة الدافعة لك، وهم في غاية الأهمية.

    عاملهم على هذا الأساس.

    وفي المرة القادمة التي تبدو فيها متردداً بشأن الاستثمار في دعم عملاء جيد، تذكر هذه الكلمات من نيل باتيل:

    “يدرك أصحاب الأعمال الأذكياء أن كل علاقة عميل تُفقد، سواء لصالح منافس أو لغير ذلك، تكلفهم في المتوسط 289 دولاراً سنوياً.

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

  • Frontly Builder: الأسئلة الشائعة

    A few months ago, we announced the launch Frontly Builder, a bigger, better front-end page builder with increased performance and awesome new stuff. Think of it as a new and improved version of Page Builder Sandwich.

    لا يزال قيد العمل، ولكنه سيصل قريبًا جدًا. في هذه الأثناء، نحن على يقين من أن لديكم بعض الأسئلة حول Frontly. لذا إليكم قسمًا قصيرًا للأسئلة الشائعة للجميع!

    What will happen to my PBS-run site?/Will I lose everything I’ve built using PBS?/Will the Frontly update destroy my website?

    • No, definitely not! Everything you’ve made using Page Builder Sandwich will remain intact, and nothing will change.

    I purchased Page Builder Sandwich before the Frontly release. What do I do?

    • The only thing you have to do is… nothing. For current PBS users, Frontly will be released as an “update”. You’ll just be upgraded to a “better” version of PBS- Frontly.

    Will I have to repurchase Frontly?

    • No. If you’ve purchased PBS before the Frontly release, you don’t need to purchase anything. As mentioned, everything will be released as an “update” for old users, so you won’t have to lift a finger or shell anything out- we’ve sorted everything out for you guys. ?

    هذا كل شيء في الوقت الحالي! إذا كان لديكم المزيد من الأسئلة، اتركوا لنا تعليقًا أدناه حتى نتمكن من إضافتها إلى قائمة الأسئلة الشائعة هذه.

    نأمل أن تكونوا متحمسين لـ Frontly بقدر حماسنا! نراكم هناك. ؟

    اترك لنا بريدك الإلكتروني لتكون أول من يحصل على التحديثات!

  • #PBSUpdate: قوالب صفحات كاملة ومخصصة لمجالات محددة

    PBS Version 4.0 has been our biggest update yet, and with its release, we’ve included a new game-changing feature, the Full Page, Niche-Based Templates.

    The Full Page Templates are a set of 10 professionally designed, niche-based templates. They’re ready to use upon downloading PBS, and can be used as is, or may be tweaked to fit your taste.

    Use as a Starting Point for Your Page

    يعد استخدام القوالب أحد أكثر الطرق فعالية لإنشاء صفحات الويب. وغالبًا ما يتم تقديمها كحل سريع لمشاكل تصميم الموقع وتخطيطه، حيث توفر للمستخدم عدة خيارات للاختيار من بينها (تكون عادةً بمواضيع مختلفة). ومع تحديث الإصدار 4.0، أصدر Page Builder Sandwich أخيرًا مجموعة خاصة به.

    A screenshot of one of our templates, the PBS Farm Template

    The Benefits

    تم تصميم قوالب الصفحات الكاملة في PBS خصيصًا لتخفيف عبء تصميم صفحة الويب الخاصة بك من الصفر. تم تصميم كل قالب ليلبي مجالاً محددًا، حيث يحتوي كل منها على عناصر مناسبة لصناعة معينة. على سبيل المثال، يتضمن قالب الفندق ميزات مثل خرائط Google، ونموذج اتصال، وأقسام مصممة لعرض وسائل الراحة في فندقك. ومن ناحية أخرى، يتضمن قالب الأزياء شريط تمرير (carousel) حيث يمكنك عرض أحدث منتجاتك مع أسعارها أدناه.

    Tweak, Tweak, Tweak

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

    A section of the PBS Farm Template with tweaked colors and different photo that may cater to a different niche

    The 10 templates we currently have available (we’ll be releasing more soon!) are themed according to the following common niches and industries:

    1. Hotel Template

    • For hotels, spas, or similar business.
    • Includes video background hero header, carousel testimonials, contact form, Google Map, and more.

    2. Law/Corporate Template

    • For law firms and other corporate businesses.
    • Includes about us section, carousel testimonials, meet the team section, and more.

    3. Fashion Template

    • Use for online clothing stores and other e-commerce sites. Includes featured products carousel, call–to–action buttons, latest blogpost previews, and more.
    • Includes featured products carousel, call–to–action buttons, latest blogpost previews, and more.

    4. Farm Template

    • Ideal for subscription e–commerce sites.
    • Includes promo header, call–to–action buttons, subscription plan sections, and more.

    5. Restaurant Template

    • Perfect for restaurants and other delivery service businesses.
    • Includes hero header with space for delivery numbers, menu section, business hours section, and more.

    6. Concert Template

    • Ideal for concerts and other big events or gatherings.
    • Includes countdown, video background, affiliates section, prices section, subscription button, and more.

    7. Forum Template

    • Use for communities, small organizations, and more.Includes call-to-action buttons, about section, count up, meet the team section, and more.
    • Includes call-to-action buttons, about section, count up, meet the team section, and more.

    8. Portfolio Template

    • For photography or art portfolios, and more.
    • Includes iconified skillset section, gallery, social media buttons, and more.

    9. Industrial Template

    • Use for industrial or manufacturing businesses, and more.
    • Includes hero header with video background, about us/featured product sections, carousel testimonials, and more.

    10. Wedding Template

    • Perfect for weddings and other small intimate events.
    • Includes hero header with video background, photo gallery, RSVP section, Google Map, and more.

    Some samples of PBS’ Full Page Templates: the Law, Forum, and Hotel Templates

    The Future of Full Page Templates

    بينما يتوفر لدينا 10 قوالب في الوقت الحالي، فإننا نعمل حاليًا على إنشاء المزيد. بالطبع، نريد تغطية جميع المجالات والصناعات الشائعة، ولكن إذا كان لديك أي اقتراحات، فلا تتردد في مراسلتنا.

    نتمنى لكم تجربة ممتعة في بناء المواقع!

  • كيفية إضافة تأثير التمرير المتوازي (Parallax)، وخلفية الفيديو، وتأثير كين بيرنز (Ken Burns)

    يحتوي Page Builder Sandwich على ميزة نفضل أن نطلق عليها إجمالاً اسم تأثيرات الخلفية المميزة (Fancy Background Effects). وهناك ثلاثة منها: تأثير بارالاكس، وخلفيات الفيديو، وتأثير كين بيرنز.

    What are the different Fancy Background Effects?

    تمنح تأثيرات الخلفية المميزة من PBS موقعك الإلكتروني الدفعة التي يحتاجها لجذب زوار الموقع. إنها طريقة مضمونة للفت الانتباه، وعند تنفيذها بشكل صحيح، يمكن أن تحقق نتائج لافتة للنظر في عدد زيارات الموقع.

    تأثير بارالاكس

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

    With Parallax Scrolling

    The background image scrolls at a different rate as the rest of the elements in the page.

    Without Parallax Scrolling

    The elements of the web page – the text, images, buttons, etc – all scroll at the same rate as the background.

    Video Backgrounds

    تتيح لك خلفيات الفيديو وضع مقاطع فيديو ذات تكرار مستمر في الخلفيات بدلاً من الصور الثابتة. والمميز في خلفيات الفيديو من PBS هو أنه يمكنك ببساطة لصق رابط YouTube أو Vimeo الذي تريده عندما يُطلب منك ذلك، وسنقوم بتحويله إلى خلفية فيديو لك. كما يمكنك أيضاً رفع مقاطع الفيديو الخاصة بك لهذا الغرض أيضاً.

    بعض النماذج لخلفيات الفيديو التي يمكنك الاطلاع عليها:

    The Ken Burns Effect

    Ken Burns, who popularized the Ken Burns effect in film.

    In documentaries, do you ever notice when they show photos that slowly zoom into detail? That’s called the Ken Burns Effect. You can access these effects on Page Builder Sandwich, too.

    How do I add the Fancy Background Effects?

    يمكنك العثور على جميع تأثيرات الخلفية المميزة من خلال اتباع الخطوات التالية:

    Step 1: Choose a row you’d like to add an effect on. Click on this row’s settings button (the gear icon on the left). This will open the Properties Inspector.

    Step 2: Once the Properties Inspector pops up, scroll down a bit until you find the option called “Fancy Background Effects”.

    Step 3: Once you’ve found it, you’ll see that you can click a dropdown button and select which background effect you’d like on your row.

    Step 4: Depending on which Fancy Background Effect you choose, you can adjust each effect’s settings. For example, for the Parallax effect, you can adjust its height and position.

    وهكذا تكون قد انتهيت! بعد ذلك، يُفترض أن ترى تأثيرات الخلفية المميزة تظهر على موقعك وتعمل بكامل رونقها.

    Have you used PBS’ Fancy Backgrounds yet?

    هل هناك أي تأثيرات خلفية أخرى ترغب في اقتراح إضافتها إلى ميزاتنا؟ أو هل تود أن تشاركنا موقعك المصنوع عبر PBS مع أحد هذه التأثيرات؟ أخبرنا في قسم التعليقات أدناه!

  • تمرير البارالاكس: ما هو؟

    The parallax scrolling effect is a design technique that’s relatively new in development and web design. Over the past few years since it’s hit the scene though, it’s grown pretty popular in its own right, and with good reason, too.

    تعريف التمرير المتوازي (Parallax Scrolling)

    Parallax scrolling is a technique wherein your web page’s background image scrolls at a slower rate compared to the foreground image. It gives the user a unique sense of depth and action while scrolling through a page when used on a website.

    Without Parallax Scrolling

    The elements of the web page – the text, images, buttons, etc – all scroll at the same rate as the background.

    With Parallax Scrolling

    The background image scrolls at a different rate as the rest of the elements in the page.

    تأثير التمرير المتوازي على المستخدم

    ومع ذلك، فإن هذه التقنية ليست جديدة تمامًا، فقد استُخدمت بالفعل في الرسوم المتحركة التقليدية منذ وقت مبكر يرجع إلى عشرينيات القرن العشرين. كما تم استخدامها أيضًا في الكثير من ألعاب الفيديو الكلاسيكية، مثل سوبر ماريو بروز.

    أما في مجال تصميم الويب، فغالبًا ما يُنسب الفضل إلى شركة نايكي باعتبارها واحدة من أول من استخدم التمرير المتوازي في عام 2011. ومنذ ذلك الحين، أصبح مصطلح “التمرير المتوازي” (أو ما يُعرف أحيانًا بـ “خلفية/خلفيات البارالاكس”) مصطلحًا شائعًا بين المصممين والمطورين على حد سواء، وازدادت شعبيته باطراد.

    Parallax scrolling as used in a version of Super Mario Brothers. Notice how the hills in the background move
    in slightly varying speeds, as compared to Mario and the other characters in the foreground.

    ما الفائدة التي تعود على المستخدم؟

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

    شاركنا أعمالك!

    ما رأيكم إذن؟ هل جربتم ميزة خلفية البارالاكس الأحدث من PBS v4 حتى الآن؟ وهل حققت النتائج المرجوة بالنسبة لكم؟ لا تترددوا في مشاركة روابط أعمالكم معنا، أو كتابة بعض الاقتراحات في قسم التعليقات أدناه.

    نتمنى لكم تجربة ممتعة في بناء المواقع!

  • 4 أخطاء في تصميم المواقع الإلكترونية يجب عليك تجنبها في عام 2018

    If there’s one thing you need to remember when building a website, it’s to never take good design for granted.

    As we’ve mentioned in a previous article, a site visitor’s first impression on your website can make or break you in just a matter of seconds.

    In other words, if they don’t like what they see within that timeframe, chances are they’re going to close their browser windows and direct their attention elsewhere.

    Fortunately, there are a lot of ways to prevent this from happening; one of them is to familiarize yourself with good web design practices. And the good news is you don’t need to be a professional web designer in order to do so.

    Because while it’s true that not everyone has a good eye for design, preventing bad design becomes easier once you know what to avoid.

    ومع ذلك، احرص على وضع هذه الأخطاء الأربعة الشائعة في تصميم الويب في اعتبارك. بهذه الطريقة، سيكون لديك شيء أقل لتقلق بشأنه عندما تبدأ أخيرًا في إنشاء موقعك الإلكتروني.

    الخطأ رقم 1: استخدام أكثر من 3 خطوط

    A rule of thumb when designing websites? Try not to have too much visual elements going on within your space. Having more than 3 fonts on your site design is a surefire way to break this one rule. It’ll also overwhelm your site visitors.

    يُعد الإبقاء على خطوط موقعك الإلكتروني عند 3 خطوط كحد أدنى ممارسة تصميم عامة يتبعها المحترفون. بالإضافة إلى ذلك، فإنه يزيد من مستوى مقروئية موقعك واتساقه، وهما أمران أساسيان لنجاح زيارات موقعك.

    DON’T DO THIS:

    Don’t use more than 3 fonts and try to avoid “fancy fonts” as much as possible. These tend to make your site look unprofessional and outdated.

    DO THIS:

    Use only 2 fonts, or a maximum of 3 if you have to. Notice how the page below looks clean and sleek, all while keeping readability and consistency all throughout the design.

    Try comparing the differences between this example and the previous one. The example below with only two fonts is a website that your visitors will likely take seriously.  This previous one above with the overwhelming amount of fonts isn’t.

    Mistake #2: Failing to Use White Space

    White space is one of the most important aspects of web design. But what is it?

    Put simply, white space is literally the empty space between elements in a composition.

    In other words, it’s negative space. This pertains to anything on your website that isn’t filled with text, photos, or other design elements.

    Now, the problem arises when website owners want to fill all of the white space in, which is an absolute no-no.

    White space matters because it gives your site visitors and readers some breathing space when going through your site. Just how it was mentioned in the first design mistake to avoid, overwhelming your website with too much design elements is more than enough reason for your site visitors to leave and for your traffic to decrease significantly. It also makes for poorly executed design.

    DON’T DO THIS:

    In the example below, take a look at how the text is nearing the edges of the purple section’s margin. Notice as well how all elements leave almost zero room for white space.

    DO THIS INSTEAD:

    Give your site readers some room to breathe. If adding in long paragraphs is unavoidable, just remember to always take the rules of spacing into account—they’re pretty easy to remember anyway ?.  It will leave your page looking cool, crisp, and professional.

    Mistake #3: Designing Websites With Zero Flow in Your Site’s Content

    It’s important to pay attention as to how  information on your website is presented. Moreover, site content should generally follow a logical flow, taking the site viewer’s intuition into consideration.

    ألقِ نظرة على المثالين أدناه لترى ما نعنيه.

    DON’T DO THIS:

    Unless you’re a graphic designer by profession, it’s probably not a good idea to experiment with the standard flow of your website’s sections.

    Below, you can see that the site’s design lacks both visual and logical flow; everything is all over the place. You don’t want your audience having a hard time navigating through your site, either. This is another surefire way to do it.

    DO THIS INSTEAD:

    Notice how the sections of the website flow depending on what actions the visitor is most likely to take.

    التصميم بديهي وله تدفق منطقي: أولاً، تُعرّف المنظمة بنفسها وتُطلع الجمهور على الأساسيات؛ مثل ماهيتها وما تفعله. ثانياً، تضيف أرقاماً موثوقة لترسيخ المصداقية. وأخيراً، يزود الموقع الإلكتروني الجمهور بأرقام الاتصال وقائمة بالفعاليات، مما يحفزهم على اتخاذ إجراء.

    Mistake #4: Trying to Fit in Every Bit of Information Onto Your Website

    قد يؤدي وضع كتل نصوص غير ضرورية حيث ينبغي أن توجد مساحات بيضاء إلى إبعاد جمهورك. تذكر أن تحتفظ فقط بالتفاصيل المهمة.

    Studies find that readers only visit 20% of your webpage; everyone else outside that percentage will probably just scroll through your site.

    DON’T DO THIS.

    Don’t overwhelm your visitors with inconsistent, giant walls of text, especially if it means having to sacrifice your website design’s cohesiveness and structure.

    DO THIS INSTEAD:

    Keep your copy short and concise, and take out chunks of unecessary text if you can help it. Only keep vital information that your site visitors absolutely need to know.

    Conclusion

    Website design is important, and can be a huge deciding factor in whether or not you gain site traffic.

    تذكر ألا تأخذ الأمر كأمر مسلم به. خصص دائماً وقتاً للبحث، واطلع على مقالات التصميم لإرشادك في كل خطوة. وقبل أن تدرك ذلك، ستشهد زيادة في حركة المرور إلى موقعك. ? حظاً موفقاً!

    Design in less time!

    Check out how much faster Page Builder Sandwich let you design your web pages.

    Try Live Preview

    This week’s useful resource:

    CANVA has hundreds of resources that you can access on their website. Apart from useful and easy-to-follow design tips, they also have photo editing tools, graphs, and a wide range of useful resources you can use for your creative projects.

    اطلع على دليل الألوان الرائع هذا من Canva لمشروعك التصميمي القادم.

    Canva Design Wiki

    أطلق العنان لإبداعك.

    تحقق من دليل ألوان Canva

  • كيف رفعنا أداء إضافتنا بنسبة 200%

    في 2 فبراير 2017 الماضي، كتبت آن تايلور مقال 12 شيئاً نحتاج لرؤيتها من منشئي صفحات ووردبريس في 2017 + من قام بالأمر بالشكل الصحيح بالفعل في CodeInWP. لقد عملنا على تحسين Page Builder Sandwich باستمرار لأكثر من عام حتى الآن: نجري أبحاثنا، ونستمع إلى عملائنا، لذلك اعتقدنا أن Page Builder Sandwich سيصل إلى قائمة مقال “من قام بالأمر بالشكل الصحيح” في CodeInWP. ومع ذلك، لم نصل إليها بسبب الأداء. ?

    لذا سألنا آن عن ذلك، وأجابت:

    …لقد جربت الإصدار المجاني قليلاً. إنه يُظهر الكثير من الإمكانات الواعدة: العديد من الوحدات، وواجهة مستخدم بديهية للغاية، وتجربة رائعة لما تراه هو ما تحصل عليه (WYSIWYG)، وكل شيء يتم سحبه بسهولة. ومع ذلك، عندما كان لدي حوالي 10 وحدات على الصفحة، أصبح من الصعب الاستمرار في العمل معه بسبب بطء سرعة التحرير…

    وفقاً لها، فإن Page Builder Sandwich يعاني من مشاكل في الأداء. وبما أننا نستمع دائماً إلى الملاحظات، فقد قمنا بالتحقق من الأمر.

    اختبار الأداء

    كنا بحاجة إلى طريقة للتحقق من أداء PBS؛ وبما أن PBS يعمل في الغالب على المتصفح عبر Javascript، فقد كانت أداة تحليل الجدول الزمني في Chrome (Timeline profiler) هي الأداة المناسبة لهذه المهمة. يمكن لأداة تحليل المخطط الزمني تحديد وقياس العمليات التي تحدث في صفحة الويب أثناء وقت التشغيل، وهو أمر مثالي للعثور على اختناقات السرعة.

    رأينا أنه ينبغي علينا اختبار أبسط الخطوات أولاً – تحريك الفأرة عبر عدة عناصر وصفوف. أمر بسيط، أليس كذلك؟ كنا واثقين من أننا لن نواجه مشكلات في الأداء مع شيء بسيط كهذا. ولكن لسوء الحظ، كنا مخطئين.

    بمجرد أن ضغطنا على زر التسجيل، قمنا بتحريك الفأرة لمدة ثانيتين تقريباً على الشاشة، ثم ضغطنا على زر الإيقاف. إليكم المخطط الزمني الناتج من أداة التحليل:

    وانظر إلى هذا! إنه مليء باختناقات الأداء حتى الحافة!

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

    ولكن ماذا تعني كل هذه المناطق الأرجوانية حقاً؟

    كانت أداة التحليل لطيفة بما يكفي لتخبرنا أنها تسمى إعادة التدفق (reflows). إليكم تعريف ماهية إعادة التدفق من موقع مطوري Google:

    إعادة التدفق (Reflow) هو اسم عملية متصفح الويب لإعادة حساب مواضع وأبعاد العناصر في المستند.. إعادة التدفق هي عملية تحظر تفاعل المستخدم (user-blocking) في المتصفح.

    هذا يعني أن تحريك الفأرة في PBS يؤدي إلى تشغيل كم هائل من عمليات إعادة التدفق. والأسوأ من ذلك هو أن كل عملية إعادة تدفق توقف المتصفح مؤقتاً حتى يتمكن من إنهاء حساباته. المزيد من عمليات إعادة التدفق يعني المزيد من توقفات المتصفح المؤقتة، وتصبح التجربة أكثر تقطعاً وتلعثماً (janky). بعبارات أبسط، الكثير من المناطق الأرجوانية = سيئ.

    لذا تبين أن آن كانت على حق: لدينا بالفعل اختناق كبير في الأداء، لذلك باشر فريقنا العمل على الفور لإصلاحه.

    حل مشكلة إعادة التدفق / التقطع لدينا

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

    تقريباً أي دالة يمكنك استخدامها للحصول على عرض عنصر DOM أو ارتفاعه أو موضعه يمكن أن تؤدي إلى تشغيل إعادة التدفق. كتب بول آيرش قائمة شاملة بجميع الخصائص والدوال في Javascript التي يمكنها فعل ذلك. الأخبار السيئة هي أن Page Builder Sandwich يستخدم الكثير من هذه الخصائص والدوال، والتي تسبب جميعها إعادة التدفق:

    • elem.getBoundingClientRect()
    • window.getComputedStyle()
    • window.scrollY
    • والكثير غيرها…

    الحل رقم 1: تخزين عمليات إعادة التدفق المكلفة في الذاكرة المؤقتة (Caching)

    الحل الأكثر وضوحاً هو عدم استخدام تلك الخصائص والدوال. ومع ذلك، يعتمد PBS بشكل كبير عليها ولا يمكننا الاستغناء عنها.

    الحل المتبقي لنا هو تقليص عدد الاستدعاءات لتلك الدوال قدر الإمكان. الجزء الصعب هنا هو أننا استخدمنا تلك الخصائص والدوال عدة مرات في أجزاء مختلفة من PBS، وفي معظم الأوقات، استخدمناها على نفس عنصر DOM عدة مرات. لإصلاح ذلك، أنشأنا آلية التخزين المؤقت الخاصة بنا لكل خاصية/دالة بها مشكلة.

    على سبيل المثال، تعطينا دالة getBoundingClientRect قياسات البكسل الحالية لأعلى ويسار وعرض وارتفاع ويمين وأسفل عنصر DOM. نستخدم هذه الدالة طوال الوقت لحساب الموقع الذي يتم فيه رسم حدود العناصر في PBS. إليكم دالة التخزين المؤقت التي أنشأناها لهذا الغرض:

    // ذاكرة التخزين المؤقت: يتم الاحتفاظ بمستطيلات العميل هنا، ويمكننا استخدام هذا لمسحها لاحقًا.
    var elemsWithBoundingRects = [];
    
    window.pbsGetBoundingClientRect = function( element ) {
    
    	// تحقق مما إذا كنا قد حصلنا على مستطيل العميل من قبل.
    	if ( ! element._boundingClientRect ) {
    
    		// إذا لم يكن الأمر كذلك، فاحصل عليه ثم خزّنه للاستخدام في المستقبل.
    		element._boundingClientRect = element.getBoundingClientRect();
    		elemsWithBoundingRects.push( element );
    	}
    	return element._boundingClientRect;
    };
    ​

    بدلاً من استدعاء getBoundingClientRect، أصبحنا نستخدم الآن pbsGetBoundingClientRect. والآن، في كل مرة يتم فيها الاستعلام عن مستطيل العميل، نقوم بتخزين هذه القيمة للرجوع إليها في المستقبل، مما يحد من عدد محفزات إعادة التدفق.

    كنا بحاجة أيضاً إلى طريقة لمسح الذاكرة المؤقتة عندما تصبح مستطيلات العميل المخزنة غير صالحة. تتغير قيم مستطيل العميل المخزن عندما يقوم المستخدم بالتمرير في الصفحة أو إضافة/تعديل/إزالة عناصر في الشاشة. لذلك أنشأنا دالة لمسح الذاكرة المؤقتة يمكننا استدعاؤها متى احتجنا إلى قيم جديدة لمستطيل العميل:

    var clearClientRects = function() {
    	var i;
    	for ( i = 0; i < elemsWithBoundingRects.length; i++ ) {
    		if ( elemsWithBoundingRects[ i ] ) {
    			elemsWithBoundingRects[ i ]._boundingClientRect = null;
    		}
    	}
    	elemsWithBoundingRects = [];
    };​

    كما طبقنا نفس آلية التخزين المؤقت هذه لاستدعاءات الدوال المكلفة الأخرى التي نستخدمها عادةً.

    الحل رقم 2: تجميع عمليات القراءة والكتابة معاً باستخدام FastDom

    أدى تطبيق الحل رقم 1 إلى زيادة أداء PBS، لكنه لم يكن كافياً.

    أثناء البحث في Google أكثر، عثرنا على مقال كتبه ويلسون بيج حول منع “تخبط التخطيط” (layout thrashing). يقول ويلسون:

    يحدث تخبط التخطيط (إعادة التدفق) عندما تقوم JavaScript بالكتابة ثم القراءة بعنف من DOM عدة مرات مما يتسبب في إعادة تدفق المستند.

    على ما يبدو، لا يكفي الحد من استدعاءاتك لخصائص ودوال محددة تسبب إعادة التدفق. فعندما تقوم بإجراء عمليات “قراءة” و”كتابة” متتالية متعددة على DOM، فإن ذلك يؤدي أيضاً إلى تشغيل إعادة تدفق المتصفح. إليكم سيناريو نموذجياً مباشرة من موقع ويلسون:

    // قراءة
    var h1 = element1.clientHeight;
    
    // كتابة (تبطل التخطيط)
    element1.style.height = (h1 * 2) + 'px';
    
    // قراءة (تطلق إعادة التدفق)
    var h2 = element2.clientHeight;
    
    // كتابة (تبطل التخطيط)
    element2.style.height = (h2 * 2) + 'px';
    
    // قراءة (تطلق إعادة التدفق)
    var h3 = element3.clientHeight;
    
    // كتابة (تبطل التخطيط)
    element3.style.height = (h3 * 2) + 'px';
    
    // تحدث إعادة تدفق المستند في نهاية الإطار​

    المثال أعلاه يؤدي إلى تشغيل 3 عمليات إعادة تدفق لأن أبعاد الصفحة بأكملها تبطل بعد عملية كتابة. الحل المقترح لهذا هو إعادة ترتيب الشيفرة البرمجية لـ تجميع كل عمليات القراءة والكتابة معاً بحيث لا يؤدي الأمر بأكمله إلا إلى تشغيل عملية إعادة تدفق واحدة للمتصفح:

    // قراءة
    var h1 = element1.clientHeight;
    var h2 = element2.clientHeight;
    var h3 = element3.clientHeight;
    
    // كتابة (تبطل التخطيط)
    element1.style.height = (h1 * 2) + 'px';
    element2.style.height = (h2 * 2) + 'px';
    element3.style.height = (h3 * 2) + 'px';
    
    // تحدث إعادة تدفق المستند في نهاية الإطار​

    المقتطف البرمجي أعلاه يجعل حل المشكلة يبدو سهلاً. ولكن في الواقع، في PBS، تحدث قراءة وكتابة الأشياء المسببة لإعادة التدفق في الكثير من الأماكن المختلفة وفي أوقات مختلفة تماماً خلال دورة حياة PBS. إعادة تنظيم آلاف الأسطر من شيفرة Javascript البرمجية لم يكن أمراً مجدياً.

    لحسن الحظ، قدم ويلسون أيضاً حلاً في مقاله؛ حيث أنشأ أداة برمجية مساعدة صغيرة للمساعدة في تجميع عمليات القراءة والكتابة تلك معاً، تسمى FastDom.

    إليكم بعض التعليمات البرمجية من Page Builder Sandwich التي تستخدم FastDom وتتضمن أيضاً حلنا رقم 1 أعلاه:

    // تجميع عمليات القراءة من الخيوط الأخرى معًا.
    fastdom.measure( function() {
    
    	// استخدام مستطيل العميل المخزن مؤقتًا لدينا.
    	var rect = window.pbsGetBoundingClientRect( elem );
    
    	// تجميع عمليات الكتابة من الخيوط الأخرى معًا.
    	fastdom.mutate( function() {
    		elem.style.top = ( rect.top + window.pbsScrollY() ) + 'px';
    		elem.style.height = rect.height + 'px';
    		elem.style.left = rect.left + 'px';
    		elem.style.width = rect.width + 'px';
    	}.bind( this ) );
    }.bind( this ) );​

    ما يفعله FastDom هو أنه يجمع كل استدعاءات fastdom.measure وجميع استدعاءات fastdom.mutate وينفذها بشكل غير متزامن، مما يجمع فعلياً جميع عمليات القراءة والكتابة معاً لتقليل جميع عمليات إعادة التدفق في المتصفح.

    الحل رقم 3: الوصول إلى كائنات الأنماط (Style Objects) أمر مكلف

    اكتشفنا أيضاً بمساعدة jsPerf أن بعض دوال جلب الأنماط كانت أسرع من غيرها.

    في PBS، نحتاج عادةً إلى الحصول على القيمة الحالية لنمط معين لعنصر ما. على سبيل المثال، نستخدم هذا عادةً للحصول على الهامش العلوي:

    var styles = window.getComputedStyle( elem );
    var marginTop = styles.marginTop;​

    ولكننا اكتشفنا أن القيام بذلك أسرع بكثير:

    var marginTop = elem.style.marginTop;​

    ومع ذلك، فإن elem.style.marginTop وgetComputedStyle مختلفان تماماً. فالأولى تعطينا التنسيق المضمن (inline styling) للعنصر فقط، ولا تأخذ في الاعتبار أي أوراق أنماط (stylesheets)؛ والثانية تأخذ في الاعتبار كلاً من الأنماط المضمنة وأوراق الأنماط.

    علاوة على ذلك، حتى عندما تم تخزين نتيجة getComputedStyle مؤقتاً، كانت لا تزال بطيئة حقاً. وكما تبين، فإن الوصول إلى كائن النمط نفسه هو العملية البطيئة.

    لحسن الحظ، يلحق PBS أنماطاً مضمنة بالعناصر، وبما أن الأنماط المضمنة لها الأسبقية (في معظم الأوقات) على أوراق الأنماط، فستكون هناك حالات يكون فيها الحصول على قيمة النمط المضمن كافياً. لذا، إذا جمعنا بين الطريقتين أعلاه، يمكننا التوصل إلى كود يعمل بشكل أسرع بكثير:

    var marginTop = elem.style.marginTop;
    if ( ! marginTop ) {
    	var styles = window.getComputedStyle( elem );
    	marginTop = styles.marginTop;
    }​

    نتائج تحسينات التعليمات البرمجية

    استغرقت حلولنا الثلاثة المذكورة أعلاه الكثير من البحث والاختبار والتنفيذ الفعلي (وأخرت إصدار ميزة الخطوط لدينا)، ولكن في النهاية كان الأمر يستحق كل هذا العناء.

    بالعودة إلى اختبارنا الأولي لتحريك الفأرة عبر الشاشة لمدة ثانيتين. إليكم المخطط الزمني القديم القبيح/المتقطع:

    وإليكم كيف يبدو مخططنا الزمني الجديد بعد تحسينات الأداء:

    كما ترون، هناك قدر أقل من العناصر الأرجوانية في الرسم البياني. وهناك فرق ملحوظ في كمية العمليات التي يقوم بها المتصفح. كما أن العناصر المستطيلة في الأسفل أصبحت أرق، مما يعني أن العمليات تعمل بشكل أسرع من ذي قبل.

    إذا قارنت كمية المناطق الأرجوانية الطويلة/العريضة في الرسمين البيانيين القديم والجديد، فإننا نرى زيادة هائلة في الأداء بنسبة 200%! كما أننا نشهد زيادات في الأداء في جميع النواحي. ليس سيئاً على الإطلاق!

    الدروس المستفادة والنتائج

    لكي نكون صادقين، لم نكن نعتقد أن PBS لديه مشكلات في الأداء قبل أن تطرح آن الأمر. ويعود ذلك بشكل رئيسي إلى أننا كنا نستخدم أجهزة تركز على التطوير ولم تكن اختناقات الأداء واضحة إلى هذا الحد. وبالنظر إلى الوراء، كان ينبغي أن يكون فحص الأداء أحد أهم الأولويات. ولكن على الأقل الآن، واعتباراً من الإصدار 4.3، تمت معالجة الأمر. ?

    بالنسبة لأولئك الذين يرغبون في تحسين أداء إضافات ووردبريس الخاصة بهم، خاصة إذا كنتم تستخدمون أيضاً Javascript بكثافة، فإليكم أهم ما تعلمته من هذه التجربة:

    1. قم بالحد من استدعاءاتك للخصائص/الدوال التي تؤدي إلى تشغيل إعادة التدفق أو تخزينها مؤقتاً. استخدم هذا كدليل: ما يفرض التخطيط/إعادة التدفق. القائمة الشاملة.
    2. قم بتجميع عمليات “القراءة” و”الكتابة” لأنماط DOM معاً. استخدم FastDom للقيام بذلك نيابة عنك.
    3. استخدم أداة تحليل المخطط الزمني في Chrome، وتأكد من حصولك على أقل قدر ممكن من عمليات إعادة التدفق (الأجزاء الأرجوانية).