1C இணைய கிளையன்ட் பற்றி

1C: எண்டர்பிரைஸ் தொழில்நுட்பத்தின் சிறப்பான அம்சங்களில் ஒன்று, நிர்வகிக்கப்பட்ட படிவ தொழில்நுட்பத்தைப் பயன்படுத்தி உருவாக்கப்பட்ட பயன்பாட்டுத் தீர்வு, Windows, Linux, MacOS X ஆகியவற்றிற்கான மெல்லிய (இயக்கக்கூடிய) கிளையண்டிலும், 5 உலாவிகளுக்கான வலை கிளையண்டிலும் தொடங்கப்படலாம் - குரோம், இன்டர்நெட் எக்ஸ்புளோரர், பயர்பாக்ஸ், சஃபாரி, எட்ஜ் மற்றும் இவை அனைத்தும் பயன்பாட்டு மூலக் குறியீட்டை மாற்றாமல். மேலும், வெளிப்புறமாக மெல்லிய கிளையண்ட் மற்றும் உலாவியில் உள்ள பயன்பாடு கிட்டத்தட்ட ஒரே மாதிரியாக செயல்படுகிறது.
10 வேறுபாடுகளைக் கண்டறியவும் (வெட்டின் கீழ் 2 படங்கள்):

லினக்ஸில் மெல்லிய கிளையன்ட் சாளரம்:

1C இணைய கிளையன்ட் பற்றி

இணைய கிளையண்டில் அதே சாளரம் (குரோம் உலாவியில்):

1C இணைய கிளையன்ட் பற்றி

நாங்கள் ஏன் ஒரு வலை கிளையண்டை உருவாக்கினோம்? சற்றே பரிதாபமாகச் சொல்வதென்றால், காலம் நமக்கு இப்படியொரு பணியை அமைத்துள்ளது. இணையத்தில் வேலை செய்வது நீண்ட காலமாக வணிக பயன்பாடுகளுக்கு ஒரு முன்நிபந்தனையாக இருந்து வருகிறது. முதலில், எங்கள் மெல்லிய வாடிக்கையாளருக்கு இணையம் வழியாக வேலை செய்யும் திறனை நாங்கள் சேர்த்துள்ளோம் (எங்கள் போட்டியாளர்களில் சிலர், இதை நிறுத்தினர்; மற்றவர்கள், மாறாக, மெல்லிய கிளையண்டை கைவிட்டு, வலை கிளையண்டை செயல்படுத்துவதில் தங்களை மட்டுப்படுத்தினர்). எங்கள் பயனர்களுக்கு மிகவும் பொருத்தமான கிளையன்ட் விருப்பத்தைத் தேர்ந்தெடுப்பதற்கான வாய்ப்பை வழங்க முடிவு செய்தோம்.

1C இணைய கிளையன்ட் பற்றி

மெல்லிய கிளையண்டிற்கு இணைய அடிப்படையிலான திறன்களைச் சேர்ப்பது கிளையன்ட்-சர்வர் கட்டமைப்பில் முழுமையான மாற்றத்துடன் ஒரு பெரிய திட்டமாகும். ஒரு வலை கிளையண்டை உருவாக்குவது முற்றிலும் புதிய திட்டமாகும், இது புதிதாக தொடங்குகிறது.

பிரச்சனை அறிக்கை

எனவே, திட்டத் தேவைகள்: வலை கிளையண்ட் மெல்லிய கிளையண்டைப் போலவே செய்ய வேண்டும், அதாவது:

  1. பயனர் இடைமுகத்தைக் காண்பி
  2. 1C மொழியில் எழுதப்பட்ட கிளையன்ட் குறியீட்டை இயக்கவும்

1C இல் உள்ள பயனர் இடைமுகம் ஒரு காட்சி எடிட்டரில் விவரிக்கப்பட்டுள்ளது, ஆனால் பிக்சல்-பை-பிக்சல் உறுப்புகளின் ஏற்பாடு இல்லாமல் அறிவிக்கப்படுகிறது; சுமார் மூன்று டஜன் வகையான இடைமுக கூறுகள் பயன்படுத்தப்படுகின்றன - பொத்தான்கள், உள்ளீட்டு புலங்கள் (உரை, எண், தேதி/நேரம்), பட்டியல்கள், அட்டவணைகள், வரைபடங்கள் போன்றவை.

1C மொழியில் உள்ள கிளையண்ட் குறியீடு, சேவையக அழைப்புகள், உள்ளூர் ஆதாரங்களுடன் (கோப்புகள், முதலியன), அச்சிடுதல் மற்றும் பலவற்றைக் கொண்டிருக்கலாம்.

மெல்லிய கிளையன்ட் (இணையம் வழியாக பணிபுரியும் போது) மற்றும் வலை கிளையன்ட் ஆகிய இருவரும் 1C பயன்பாட்டு சேவையகத்துடன் தொடர்பு கொள்ள இணைய சேவைகளின் ஒரே தொகுப்பைப் பயன்படுத்துகின்றனர். கிளையண்ட் செயலாக்கங்கள், நிச்சயமாக, வேறுபட்டவை - மெல்லிய கிளையன்ட் C++ இல் எழுதப்பட்டுள்ளது, வலை கிளையன்ட் ஜாவாஸ்கிரிப்ட்டில் எழுதப்பட்டுள்ளது.

வரலாற்றின் ஒரு பிட்

வலை கிளையன்ட் திட்டம் 2006 இல் (சராசரியாக) 5 பேர் கொண்ட குழுவுடன் தொடங்கியது. திட்டத்தின் சில கட்டங்களில், டெவலப்பர்கள் குறிப்பிட்ட செயல்பாடுகளைச் செயல்படுத்துவதில் ஈடுபட்டுள்ளனர் (விரிதாள் ஆவணம், வரைபடங்கள், முதலியன); ஒரு விதியாக, மெல்லிய கிளையண்டில் இந்த செயல்பாட்டைச் செய்த அதே டெவலப்பர்கள். அந்த. டெவலப்பர்கள் முன்பு C++ இல் உருவாக்கிய ஜாவாஸ்கிரிப்ட்டில் கூறுகளை மீண்டும் எழுதினார்கள்.

ஆரம்பத்தில் இருந்தே, இரண்டு மொழிகளுக்கு இடையே உள்ள வலுவான கருத்தியல் வேறுபாடுகள் காரணமாக, C++ மெல்லிய கிளையன்ட் குறியீட்டை JavaScript வலை கிளையண்டாக மாற்றும் (பகுதியளவு கூட) யோசனையை நாங்கள் நிராகரித்தோம்; வலை கிளையன்ட் புதிதாக ஜாவாஸ்கிரிப்ட்டில் எழுதப்பட்டது.

திட்டத்தின் முதல் மறு செய்கைகளில், வலை கிளையன்ட் உள்ளமைக்கப்பட்ட 1C மொழியில் உள்ள கிளையன்ட் குறியீட்டை நேரடியாக ஜாவாஸ்கிரிப்டாக மாற்றியது. மெல்லிய கிளையன்ட் வித்தியாசமாக செயல்படுகிறது - உள்ளமைக்கப்பட்ட 1C மொழியில் உள்ள குறியீடு பைட்கோடாக தொகுக்கப்படுகிறது, பின்னர் இந்த பைட்கோட் கிளையண்டில் விளக்கப்படுகிறது. பின்னர், வலை கிளையண்ட் அதையே செய்யத் தொடங்கியது - முதலாவதாக, இது ஒரு செயல்திறன் ஆதாயத்தைக் கொடுத்தது, இரண்டாவதாக, மெல்லிய மற்றும் வலை வாடிக்கையாளர்களின் கட்டமைப்பை ஒருங்கிணைக்க முடிந்தது.

வலை கிளையன்ட் ஆதரவுடன் 1C: Enterprise தளத்தின் முதல் பதிப்பு 2009 இல் வெளியிடப்பட்டது. அந்த நேரத்தில் இணைய கிளையன்ட் 2 உலாவிகளை ஆதரித்தது - Internet Explorer மற்றும் Firefox. அசல் திட்டங்களில் ஓபராவுக்கான ஆதரவு இருந்தது, ஆனால் அந்த நேரத்தில் ஓபராவில் உள்ள அப்ளிகேஷன் க்ளோசிங் ஹேண்ட்லர்களில் இருந்த சமாளிக்க முடியாத சிக்கல்கள் காரணமாக (பயன்பாடு முடிவடைகிறது என்பதை 100% உறுதியாகக் கண்காணிக்க முடியவில்லை, மேலும் அந்த நேரத்தில் துண்டிக்கும் நடைமுறையை மேற்கொள்ளவும். இந்த திட்டங்களில் இருந்து 1C பயன்பாட்டு சேவையகம்) கைவிடப்பட வேண்டும்.

திட்ட அமைப்பு

மொத்தத்தில், 1C:Enterprise மேடையில் ஜாவாஸ்கிரிப்ட்டில் எழுதப்பட்ட 4 திட்டங்கள் உள்ளன:

  1. WebTools - மற்ற திட்டங்களால் பயன்படுத்தப்படும் பகிரப்பட்ட நூலகங்கள் (நாங்களும் சேர்க்கிறோம் Google மூடல் நூலகம்).
  2. கட்டுப்பாட்டு உறுப்பு வடிவமைக்கப்பட்ட ஆவணம் (தின் கிளையன்ட் மற்றும் வெப் கிளையன்ட் ஆகிய இரண்டிலும் ஜாவாஸ்கிரிப்டில் செயல்படுத்தப்பட்டது)
  3. கட்டுப்பாட்டு உறுப்பு திட்டமிடுபவர் (தின் கிளையன்ட் மற்றும் வெப் கிளையன்ட் ஆகிய இரண்டிலும் ஜாவாஸ்கிரிப்டில் செயல்படுத்தப்பட்டது)
  4. இணைய வாடிக்கையாளர்

ஒவ்வொரு திட்டத்தின் கட்டமைப்பும் ஜாவா திட்டங்களின் கட்டமைப்பை ஒத்திருக்கிறது (அல்லது .NET திட்டங்கள் - எது நெருக்கமாக இருக்கிறதோ அது); எங்களிடம் பெயர்வெளிகள் உள்ளன, மேலும் ஒவ்வொரு பெயர்வெளியும் தனித்தனி கோப்புறையில் உள்ளது. கோப்புறையின் உள்ளே கோப்புகள் மற்றும் பெயர்வெளி வகுப்புகள் உள்ளன. வலை கிளையன்ட் திட்டத்தில் சுமார் 1000 கோப்புகள் உள்ளன.

கட்டமைப்பு ரீதியாக, வலை கிளையன்ட் பெரும்பாலும் பின்வரும் துணை அமைப்புகளாக பிரிக்கப்பட்டுள்ளது:

  • நிர்வகிக்கப்பட்ட கிளையன்ட் பயன்பாட்டு இடைமுகம்
    • பொது பயன்பாட்டு இடைமுகம் (கணினி மெனுக்கள், பேனல்கள்)
    • நிர்வகிக்கப்பட்ட படிவங்களின் இடைமுகம், மற்றவற்றுடன், சுமார் 30 கட்டுப்பாடுகள் (பொத்தான்கள், பல்வேறு வகையான உள்ளீட்டு புலங்கள் - உரை, எண், தேதி/நேரம், முதலியன, அட்டவணைகள், பட்டியல்கள், வரைபடங்கள் போன்றவை)

  • கிளையண்டில் உள்ள டெவலப்பர்களுக்கு கிடைக்கும் பொருள் மாதிரி (மொத்தம் 400 க்கும் மேற்பட்ட வகைகள்: நிர்வகிக்கப்பட்ட இடைமுக பொருள் மாதிரி, தரவு தளவமைப்பு அமைப்புகள், நிபந்தனை ஸ்டைலிங் போன்றவை)
  • உள்ளமைக்கப்பட்ட 1C மொழியின் மொழிபெயர்ப்பாளர்
  • உலாவி நீட்டிப்புகள் (JavaScript இல் ஆதரிக்கப்படாத செயல்பாட்டிற்குப் பயன்படுத்தப்படுகிறது)
    • குறியாக்கவியலில் பணிபுரிதல்
    • கோப்புகளுடன் பணிபுரிதல்
    • வெளிப்புற கூறுகளின் தொழில்நுட்பம், அவற்றை மெல்லிய மற்றும் இணைய கிளையன்ட்களில் பயன்படுத்த அனுமதிக்கிறது

வளர்ச்சி அம்சங்கள்

மேலே உள்ள அனைத்தையும் ஜாவாஸ்கிரிப்டில் செயல்படுத்துவது எளிதானது அல்ல. 1C வலை கிளையன்ட் ஜாவாஸ்கிரிப்ட்டில் எழுதப்பட்ட கிளையன்ட் பக்க பயன்பாடுகளில் ஒன்றாகும் - சுமார் 450.000 வரிகள். வலை கிளையன்ட் குறியீட்டில் பொருள் சார்ந்த அணுகுமுறையை நாங்கள் தீவிரமாகப் பயன்படுத்துகிறோம், இது இவ்வளவு பெரிய திட்டத்துடன் வேலை செய்வதை எளிதாக்குகிறது.

கிளையன்ட் குறியீட்டின் அளவைக் குறைக்க, நாங்கள் முதலில் எங்கள் சொந்த மழுப்பலைப் பயன்படுத்தினோம், மேலும் இயங்குதள பதிப்பு 8.3.6 (அக்டோபர் 2014) இல் தொடங்கி நாங்கள் பயன்படுத்தத் தொடங்கினோம் கூகுள் மூடல் கம்பைலர். எண்களில் பயன்பாட்டின் விளைவு - குழப்பத்திற்குப் பிறகு வலை கிளையன்ட் கட்டமைப்பின் அளவு:

  • சொந்த மழுப்பல் - 1556 kb
  • கூகுள் க்ளோசர் கம்பைலர் - 1073 கேபி

கூகுள் க்ளோசர் கம்பைலரைப் பயன்படுத்துவது, எங்களின் சொந்த மழுப்பலுடன் ஒப்பிடும்போது, ​​வெப் கிளையண்டின் செயல்திறனை 30% மேம்படுத்த உதவியது. கூடுதலாக, பயன்பாட்டினால் நுகரப்படும் நினைவகத்தின் அளவு 15-25% குறைந்துள்ளது (உலாவியைப் பொறுத்து).

கூகுள் க்ளோசர் கம்பைலர் ஆப்ஜெக்ட்-சார்ந்த குறியீட்டுடன் நன்றாக வேலை செய்கிறது, எனவே இணைய கிளையண்டிற்கான அதன் செயல்திறன் முடிந்தவரை அதிகமாக உள்ளது. மூடல் கம்பைலர் நமக்கு சில நல்ல விஷயங்களைச் செய்கிறது:

  • திட்ட உருவாக்க கட்டத்தில் நிலையான வகை சரிபார்ப்பு (JSDoc சிறுகுறிப்புகளுடன் குறியீட்டை நாங்கள் மறைப்பதை உறுதிசெய்கிறோம்). இதன் விளைவாக நிலையான தட்டச்சு, C++ இல் தட்டச்சு செய்வதற்கு மிக அருகில் உள்ளது. இது திட்டத் தொகுப்பின் கட்டத்தில் மிகப் பெரிய சதவீத பிழைகளைப் பிடிக்க உதவுகிறது.
  • தெளிவின்மை மூலம் குறியீட்டின் அளவைக் குறைத்தல்
  • செயல்படுத்தப்பட்ட குறியீட்டின் பல மேம்படுத்தல்கள், எடுத்துக்காட்டாக:
    • இன்லைன் செயல்பாடு மாற்றுகள். ஜாவாஸ்கிரிப்டில் ஒரு செயல்பாட்டை அழைப்பது மிகவும் விலையுயர்ந்த செயலாகும், மேலும் அடிக்கடி பயன்படுத்தப்படும் சிறிய முறைகளின் இன்லைன் மாற்றீடுகள் குறியீட்டை கணிசமாக வேகப்படுத்துகின்றன.
    • தொகுக்கும் நேரத்தில் மாறிலிகளை எண்ணுதல். ஒரு வெளிப்பாடு மாறிலியைச் சார்ந்து இருந்தால், மாறிலியின் உண்மையான மதிப்பு அதில் மாற்றப்படும்

WebStorm ஐ எங்கள் வலை கிளையன்ட் மேம்பாட்டு சூழலாகப் பயன்படுத்துகிறோம்.

குறியீடு பகுப்பாய்வுக்கு நாங்கள் பயன்படுத்துகிறோம் சோனார் கியூப், நிலையான குறியீடு பகுப்பாய்விகளை ஒருங்கிணைக்கிறோம். பகுப்பாய்விகளைப் பயன்படுத்தி, ஜாவாஸ்கிரிப்ட் மூலக் குறியீட்டின் தரத்தின் சீரழிவை நாங்கள் கண்காணித்து அதைத் தடுக்க முயற்சிக்கிறோம்.

1C இணைய கிளையன்ட் பற்றி

என்ன பிரச்சனைகள் செய்தோம்/தீர்க்கிறோம்?

திட்டத்தை செயல்படுத்தும் போது, ​​நாங்கள் தீர்க்க வேண்டிய பல சுவாரஸ்யமான சிக்கல்களை எதிர்கொண்டோம்.

சேவையகத்துடன் மற்றும் விண்டோக்களுக்கு இடையில் தரவைப் பரிமாறவும்

மூலக் குறியீட்டின் தெளிவின்மை கணினியின் செயல்பாட்டில் தலையிடக்கூடிய சூழ்நிலைகள் உள்ளன. இணைய கிளையண்டின் எக்ஸிகியூட்டபிள் கோட் வெளிப்புறக் குறியீடு, தெளிவின்மை காரணமாக, செயல்பாடு மற்றும் அளவுரு பெயர்களைக் கொண்டிருக்கலாம், அவை எங்களின் இயங்கக்கூடிய குறியீடு எதிர்பார்க்கும் பெயர்களிலிருந்து வேறுபடலாம். எங்களுக்கான வெளிப்புற குறியீடு:

  • தரவு கட்டமைப்புகளின் வடிவத்தில் சேவையகத்திலிருந்து வரும் குறியீடு
  • மற்றொரு பயன்பாட்டு சாளரத்திற்கான குறியீடு

சேவையகத்துடன் தொடர்பு கொள்ளும்போது குழப்பத்தைத் தவிர்க்க, @expose குறிச்சொல்லைப் பயன்படுத்துகிறோம்:

/**
 * @constructor
 * @extends {Base.SrvObject}
 */
Srv.Core.GenericException = function ()
{
    /**
     * @type {string}
     * @expose
     */
    this.descr;

    /**
     * @type {Srv.Core.GenericException}
     * @expose
     */
    this.inner;

    /**
     * @type {string}
     * @expose
     */
    this.clsid;

    /**
     * @type {boolean}
     * @expose
     */
    this.encoded;
}

மற்ற சாளரங்களுடன் தொடர்பு கொள்ளும்போது குழப்பத்தைத் தவிர்க்க, ஏற்றுமதி செய்யப்பட்ட இடைமுகங்கள் என்று அழைக்கப்படுவதைப் பயன்படுத்துகிறோம் (அனைத்து முறைகளும் ஏற்றுமதி செய்யப்படும் இடைமுகங்கள்).

/**
 * Экспортируемый интерфейс контрола DropDownWindow
 *
 * @interface
 * @struct
 */
WebUI.IDropDownWindowExp = function(){}

/**
 * Перемещает выделение на 1 вперед или назад
 *
 * @param {boolean} isForward
 * @param {boolean} checkOnly
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.moveMarker = function (isForward, checkOnly){}

/**
 * Перемещает выделение в начало или конец
 *
 * @param {boolean} isFirst
 * @param {boolean} checkOnly
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.moveMarkerTo = function (isFirst, checkOnly){}

/**
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.selectValue = function (){}

விர்ச்சுவல் DOM ஆனது முக்கிய நீரோட்டமாக மாறுவதற்கு முன்பு நாங்கள் பயன்படுத்தினோம்)

சிக்கலான இணைய UI களைக் கையாளும் அனைத்து டெவலப்பர்களையும் போலவே, DOM ஆனது டைனமிக் பயனர் இடைமுகங்களுடன் வேலை செய்வதற்கு மிகவும் பொருத்தமானது என்பதை நாங்கள் விரைவாக உணர்ந்தோம். கிட்டத்தட்ட உடனடியாக, UI உடன் பணியை மேம்படுத்த விர்ச்சுவல் DOM இன் அனலாக் செயல்படுத்தப்பட்டது. நிகழ்வு செயலாக்கத்தின் போது, ​​அனைத்து DOM மாற்றங்களும் நினைவகத்தில் சேமிக்கப்படும், மேலும் அனைத்து செயல்பாடுகளும் முடிந்ததும், திரட்டப்பட்ட மாற்றங்கள் DOM மரத்தில் பயன்படுத்தப்படும்.

வலை கிளையண்டை மேம்படுத்துதல்

எங்கள் வலை கிளையண்ட் வேகமாக செயல்பட, நிலையான உலாவி திறன்களை (CSS, முதலியன) அதிகபட்சமாக பயன்படுத்த முயற்சிக்கிறோம். எனவே, படிவ கட்டளை குழு (பயன்பாட்டின் ஒவ்வொரு வடிவத்திலும் அமைந்துள்ளது) பிரத்தியேகமாக உலாவி கருவிகளைப் பயன்படுத்தி, CSS அடிப்படையிலான டைனமிக் அமைப்பைப் பயன்படுத்தி வழங்கப்படுகிறது.

1C இணைய கிளையன்ட் பற்றி

சோதனை

செயல்பாட்டு மற்றும் செயல்திறன் சோதனைக்கு, நாங்கள் ஒரு தனியுரிம கருவியைப் பயன்படுத்துகிறோம் (ஜாவா மற்றும் C++ இல் எழுதப்பட்டது), அத்துடன் அதன் மேல் கட்டப்பட்ட சோதனைகளின் தொகுப்பையும் பயன்படுத்துகிறோம். செலினியம்.

எங்கள் கருவி உலகளாவியது - இது எந்த சாளர நிரலையும் சோதிக்க உங்களை அனுமதிக்கிறது, எனவே மெல்லிய கிளையன்ட் மற்றும் வலை கிளையன்ட் இரண்டையும் சோதிக்க ஏற்றது. ஸ்கிரிப்ட் கோப்பில் 1C பயன்பாட்டு தீர்வைத் தொடங்கிய பயனரின் செயல்களை இந்தக் கருவி பதிவு செய்கிறது. அதே நேரத்தில், திரையின் வேலைப் பகுதியின் படங்கள் - தரநிலைகள் - பதிவு செய்யப்படுகின்றன. வலை கிளையண்டின் புதிய பதிப்புகளைக் கண்காணிக்கும் போது, ​​பயனர் பங்கேற்பு இல்லாமல் ஸ்கிரிப்ட்கள் இயக்கப்படுகின்றன. ஸ்கிரீன் ஷாட் எந்த நிலையிலும் குறிப்புடன் பொருந்தாத சந்தர்ப்பங்களில், சோதனை தோல்வியடைந்ததாகக் கருதப்படுகிறது, அதன் பிறகு ஒரு தர நிபுணர் இது பிழையா அல்லது கணினியின் நடத்தையில் திட்டமிட்ட மாற்றமா என்பதைத் தீர்மானிக்க விசாரணை நடத்துகிறார். திட்டமிட்ட நடத்தை வழக்கில், தரநிலைகள் தானாகவே புதியவற்றுடன் மாற்றப்படும்.

கருவியானது 25 மில்லி விநாடிகள் வரையிலான துல்லியத்துடன் பயன்பாட்டின் செயல்திறனையும் அளவிடுகிறது. சில சமயங்களில், ஸ்கிரிப்ட்டின் பகுதிகளை லூப் செய்கிறோம் (உதாரணமாக, ஆர்டர் உள்ளீட்டை பல முறை திரும்பத் திரும்பச் செய்கிறோம்) காலப்போக்கில் செயல்படுத்தும் நேரத்தின் சீரழிவை பகுப்பாய்வு செய்யலாம். அனைத்து அளவீடுகளின் முடிவுகளும் பகுப்பாய்விற்காக ஒரு பதிவில் பதிவு செய்யப்பட்டுள்ளன.

1C இணைய கிளையன்ட் பற்றி
எங்கள் சோதனைக் கருவி மற்றும் பயன்பாடு சோதனையில் உள்ளது

எங்கள் கருவியும் செலினியமும் ஒன்றையொன்று பூர்த்தி செய்கின்றன; எடுத்துக்காட்டாக, திரைகளில் ஏதேனும் ஒரு பொத்தான் அதன் இருப்பிடத்தை மாற்றியிருந்தால், செலினியம் இதைக் கண்காணிக்காது, ஆனால் எங்கள் கருவி கவனிக்கும், ஏனெனில் ஸ்கிரீன்ஷாட்டை தரத்துடன் பிக்சல்-பை-பிக்சல் ஒப்பீடு செய்கிறது. விசைப்பலகை அல்லது மவுஸிலிருந்து உள்ளீட்டைச் செயலாக்குவதில் உள்ள சிக்கல்களைக் கருவியால் கண்காணிக்க முடியும், ஏனெனில் இது சரியாக இனப்பெருக்கம் செய்கிறது.

இரண்டு கருவிகளிலும் (நம்முடையது மற்றும் செலினியம்) சோதனைகள் எங்கள் பயன்பாட்டு தீர்வுகளிலிருந்து வழக்கமான வேலை காட்சிகளை இயக்குகின்றன. 1C:Enterprise தளத்தின் தினசரி உருவாக்கத்திற்குப் பிறகு சோதனைகள் தானாகவே தொடங்கப்படும். ஸ்கிரிப்ட்கள் மெதுவாக இருந்தால் (முந்தைய உருவாக்கத்துடன் ஒப்பிடும்போது), மந்தநிலைக்கான காரணத்தை ஆராய்ந்து தீர்க்கிறோம். எங்கள் அளவுகோல் எளிதானது - புதிய உருவாக்கம் முந்தையதை விட மெதுவாக வேலை செய்யக்கூடாது.

டெவலப்பர்கள் மந்தநிலை சம்பவங்களை விசாரிக்க வெவ்வேறு கருவிகளைப் பயன்படுத்துகின்றனர்; முக்கியமாக பயன்படுத்தப்படுகிறது Dynatrace AJAX பதிப்பு தயாரிப்பு நிறுவனம் டைனாட்ரேஸ். முந்தைய மற்றும் புதிய கட்டிடங்களில் சிக்கலான செயல்பாட்டைச் செயல்படுத்துவதற்கான பதிவுகள் பதிவு செய்யப்படுகின்றன, பின்னர் பதிவுகள் பகுப்பாய்வு செய்யப்படுகின்றன. அதே நேரத்தில், ஒற்றை செயல்பாடுகளை (மில்லி விநாடிகளில்) செயல்படுத்தும் நேரம் ஒரு தீர்க்கமான காரணியாக இருக்காது - குப்பை சேகரிப்பு போன்ற சேவை செயல்முறைகள் உலாவியில் அவ்வப்போது தொடங்கப்படுகின்றன, அவை செயல்பாடுகளின் செயல்பாட்டு நேரத்துடன் ஒன்றுடன் ஒன்று மற்றும் படத்தை சிதைக்கலாம். இந்த வழக்கில் மிகவும் பொருத்தமான அளவுருக்கள் செயல்படுத்தப்பட்ட ஜாவாஸ்கிரிப்ட் வழிமுறைகளின் எண்ணிக்கை, DOM இல் உள்ள அணு செயல்பாடுகளின் எண்ணிக்கை போன்றவை. புதிய பதிப்பில் ஒரே ஸ்கிரிப்டில் உள்ள வழிமுறைகள்/செயல்பாடுகளின் எண்ணிக்கை அதிகரித்திருந்தால், இது எப்போதும் சரி செய்யப்பட வேண்டிய செயல்திறன் குறைவதைக் குறிக்கிறது.

மேலும், செயல்திறன் குறைவதற்கான காரணங்களில் ஒன்று, சில காரணங்களால் கூகிள் மூடல் கம்பைலரால் செயல்பாட்டின் இன்லைன் மாற்றீட்டைச் செய்ய முடியவில்லை (உதாரணமாக, செயல்பாடு சுழல்நிலை அல்லது மெய்நிகர் என்பதால்). இந்த வழக்கில், மூலக் குறியீட்டை மீண்டும் எழுதுவதன் மூலம் நிலைமையை சரிசெய்ய முயற்சிக்கிறோம்.

உலாவி நீட்டிப்புகள்

பயன்பாட்டுத் தீர்வுக்கு JavaScript இல் இல்லாத செயல்பாடு தேவைப்படும்போது, ​​உலாவி நீட்டிப்புகளைப் பயன்படுத்துகிறோம்:

  • கோப்புகளுடன் வேலை செய்வதற்கு
  • குறியாக்கவியலில் வேலை செய்வதற்கு
  • உடன் வேலை வெளிப்புற கூறுகள்

எங்கள் நீட்டிப்புகள் இரண்டு பகுதிகளைக் கொண்டிருக்கும். முதல் பகுதி உலாவி நீட்டிப்பு (பொதுவாக ஜாவாஸ்கிரிப்ட்டில் எழுதப்பட்ட Chrome மற்றும் Firefox க்கான நீட்டிப்புகள்) என்று அழைக்கப்படுகிறது, இது இரண்டாவது பகுதியுடன் தொடர்பு கொள்கிறது - நமக்குத் தேவையான செயல்பாட்டை செயல்படுத்தும் பைனரி நீட்டிப்பு. பைனரி நீட்டிப்புகளின் 3 பதிப்புகளை நாங்கள் எழுதுகிறோம் - விண்டோஸ், லினக்ஸ் மற்றும் மேகோஸுக்கு. பைனரி நீட்டிப்பு 1C: Enterprise தளத்தின் ஒரு பகுதியாக வழங்கப்படுகிறது மற்றும் 1C பயன்பாட்டு சேவையகத்தில் அமைந்துள்ளது. இணைய கிளையண்டிலிருந்து முதல் முறையாக அழைக்கப்படும் போது, ​​அது கிளையன்ட் கணினியில் பதிவிறக்கம் செய்யப்பட்டு உலாவியில் நிறுவப்படும்.

Safari இல் இயங்கும் போது, ​​​​எங்கள் நீட்டிப்புகள் NPAPI ஐப் பயன்படுத்துகின்றன; Internet Explorer இல் இயங்கும்போது, ​​அவை ActiveX தொழில்நுட்பத்தைப் பயன்படுத்துகின்றன. Microsoft Edge நீட்டிப்புகளை இன்னும் ஆதரிக்கவில்லை, எனவே அதில் உள்ள வலை கிளையன்ட் கட்டுப்பாடுகளுடன் செயல்படுகிறது.

மேலும் வளர்ச்சி

வலை கிளையன்ட் மேம்பாட்டுக் குழுவிற்கான பணிகளில் ஒன்று செயல்பாட்டின் மேலும் மேம்பாடு ஆகும். வலை கிளையண்டின் செயல்பாடு மெல்லிய கிளையண்டின் செயல்பாட்டிற்கு ஒத்ததாக இருக்க வேண்டும்; அனைத்து புதிய செயல்பாடுகளும் மெல்லிய மற்றும் வலை கிளையண்டுகளில் ஒரே நேரத்தில் செயல்படுத்தப்படுகின்றன.

மற்ற பணிகளில் கட்டிடக்கலையை மேம்படுத்துதல், மறுசீரமைப்பு செய்தல், செயல்திறன் மற்றும் நம்பகத்தன்மையை மேம்படுத்துதல் ஆகியவை அடங்கும். எடுத்துக்காட்டாக, ஒத்திசைவற்ற பணி மாதிரியை நோக்கி மேலும் நகர்வது திசைகளில் ஒன்று. இணைய கிளையண்டின் சில செயல்பாடுகள் தற்போது சர்வருடனான தொடர்புகளின் ஒத்திசைவான மாதிரியில் கட்டமைக்கப்பட்டுள்ளது. ஒத்திசைவற்ற மாதிரியானது இப்போது உலாவிகளில் (மற்றும் உலாவிகளில் மட்டுமல்ல) மிகவும் பொருத்தமானதாகி வருகிறது, மேலும் இது ஒத்திசைவான அழைப்புகளை ஒத்திசைவற்ற அழைப்புகளுடன் மாற்றுவதன் மூலம் வலை கிளையண்டை மாற்றுவதற்கு நம்மைத் தூண்டுகிறது (மற்றும் குறியீட்டை அதற்கேற்ப மறுசீரமைத்தல்). ஒரு ஒத்திசைவற்ற மாதிரிக்கான படிப்படியான மாற்றம், வெளியிடப்பட்ட தீர்வுகளை ஆதரிக்க வேண்டியதன் அவசியத்தையும் அவற்றின் படிப்படியான தழுவலையும் விளக்குகிறது.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்