أفكار خفية عن هندسة موقع الويب

نحن في WIT-e ، بالطبع ، amblers. نظام ERP الخاص (الذي كتب عنه هنا - كيف يمكننا الاستغناء عن 1C؟ ) ، نظام CRM الخاص به ، M2M الخاص به للتواصل مع الموزعين ("ما هي الكلمات والاختصارات الذكية الأخرى التي تعرفها؟"). وبالطبع ، نهجك تجاه WWW ، للبقاء في إطار هذا النموذج المكون من 3 أحرف.

بدأ كل شيء بحب Microsoft ، وتم إنشاء بعض الإصدارات الأولى من الموقع في أواخر التسعينيات باستخدام تقنية ASP ، وكقاعدة بيانات تحته ملف MS Access عادي. بالمناسبة ، لا يزال مقدمو الخدمة يقدمون الاستضافة على ASP القديم الجيد ، بعد 18 عامًا من الترقية إلى ASP.NET - هنا لديك أنظمة قديمة في كل مجدها.

بشكل عام ، هذا مناسب تمامًا - نظرًا لأن قاعدة البيانات الداخلية مكتوبة أيضًا في MS Access ، فإن إجراء إعداد البيانات للموقع كان بسيطًا جدًا ، ولم تتم إعادة الترجمة من تنسيق بيانات إلى آخر (MySQL على سبيل المثال). يدعم Access امتداد لغة SQL الخاصة بالصيغة "IN <اسم قاعدة البيانات الخارجية>" ، والتي يمكن إضافتها بعد أي تعليمات DML: INSERT ، UPDATE ، DELETE (هنا اختصار آخر مكون من 3 أحرف).

مع نمو هذا الرابط ، بطبيعة الحال ، بدأ في الفرامل دون خجل (بالإضافة إلى أنه من غير الواضح متى يتم قفل ملف mdb مع أقفال قاعدة البيانات ، مما يطرد الموقع بالكامل بإحكام). لم تحل ترجمة الموقع إلى ASP.NET المشكلة بشكل أساسي ، وكان من الضروري أيضًا التبديل إلى MS SQL Server كقاعدة ، ولكن بعد ذلك ذهبت العملية في اتجاه مختلف. لنلق نظرة على مشكلة تحسين أداء الموقع من منظور مختلف قليلاً.

(بالمناسبة ، يكتب مزود 1Gb.ru الخاص بي أن ASP.NET في المتوسط ​​أسرع من حزمة LAMP القياسية (Linux / Apache / MySQL / PHP) ، والتي أصبحت وحيًا بالنسبة لي. ولكن من يمكنني الوثوق بها هنا لأنها ليست مشغل كل شيء؟ )

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

السؤال 1. لماذا يجب أن تكون هناك قاعدة بيانات تحت الموقع؟

حسنًا ، حقًا ، جميعكم معجبون بسرعة قواعد بيانات In-Memory ، أليس كذلك؟ فلماذا تذهب بعيدًا ، احصل على واحدة مباشرة تحت موقع الويب الخاص بك. وحتى اكثر. عند التهيئة الأولية ، قم بتحميل جميع البيانات في المصفوفات المتاحة على مستوى الموقع ككل (كائن التطبيق في ASP.NET ، والمتغيرات العالمية في PHP ، من الآن فصاعدًا في كل مكان) ، وبدلاً من كتابة الاستعلامات إلى قاعدة البيانات ، فقط قم بالتكرار من خلال هذه المصفوفات. أي شيء مناسب لتحميل البيانات الأولية - نفس قاعدة بيانات MS Access ، ولكن على الأقل ملفات CSV النصية! - يتم تنفيذ العملية بشكل غير منتظم ولا يلعب وقت تنفيذها أي دور.

هناك أسئلة ، ولكن لدينا بالفعل إجابات جاهزة عليها.

  1. , - , ? – ( , -), — ,
  2. ( ) . . – ( ) , ? , – / , – , . . Catalog ( -!) 2 – :



    MinIndex MaxIndex. , - ( ) – Parts ID Catalog, – .

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

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

السؤال 2. لماذا أحتاج إلى استخدام البرامج النصية على خادم ويب؟

أحمل جزءًا من التعليمات البرمجية في عدة أسطر ، مبسطًا عن عمد وفي أكثر لغات البرمجة جنونًا - VBA (باستثناء 1C)

        Set IE = CreateObject("InternetExplorer.Application")

        IE.Navigate "wit.ru"
        While IE.ReadyState < READYSTATE_COMPLETE
        Wend

        Set str = IE.Document.DocumentElement
        HTML = str.innerhtml

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

(مرة أخرى من 1GB.ru: "يعالج IIS بسرعة وكفاءة طلبات الملفات الثابتة")

في الوقت نفسه ، قد تضطر إلى القلق بشأن عناوين التحويل مثل
wit.ru/card.aspx؟id=23&prodid=1022985
في عناوين الويب الثابتة صفحات الويب هي أيضًا تقنية ضبط خادم ويب معروفة ، تم اختراعها في الأصل لخداع محركات البحث وتحسين الويب.

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

استنتاج


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

All Articles