1C වෙබ් සේවාදායකයා ගැන

1C: Enterprise තාක්‍ෂණයේ ඇති එක් හොඳ ලක්ෂණයක් නම්, කළමනාකරණ පෝරම තාක්‍ෂණය භාවිතයෙන් සංවර්ධනය කරන ලද යෙදුම් විසඳුම, Windows, Linux, MacOS X සඳහා තුනී (ක්‍රියාත්මක කළ හැකි) සේවාලාභියෙකු තුළ සහ බ්‍රව්සර් 5 ක් සඳහා වෙබ් සේවාදායකයක් ලෙස දියත් කළ හැකි වීමයි. Chrome, Internet Explorer, Firefox, Safari, Edge, සහ මේ සියල්ල යෙදුම් මූල කේතය වෙනස් නොකර. එපමනක් නොව, බාහිරව තුනී සේවාලාභියා සහ බ්‍රවුසරයේ යෙදුම ක්‍රියා කරන අතර පෙනුම පාහේ සමාන වේ.
වෙනස්කම් 10 ක් සොයන්න (කපනය යටතේ පින්තූර 2):

ලිනක්ස් හි තුනී සේවාදායක කවුළුව:

1C වෙබ් සේවාදායකයා ගැන

වෙබ් සේවාදායකයේ එකම කවුළුව (ක්‍රෝම් බ්‍රවුසරයේ):

1C වෙබ් සේවාදායකයා ගැන

අපි වෙබ් සේවාදායකයෙක් හැදුවේ ඇයි? එය තරමක් කණගාටුදායක ලෙස පැවසුවහොත්, කාලය අපට එවැනි කාර්යයක් ලබා දී ඇත. අන්තර්ජාලය හරහා වැඩ කිරීම බොහෝ කලක සිට ව්‍යාපාරික යෙදුම් සඳහා පූර්ව අවශ්‍යතාවයකි. පළමුව, අපි අපගේ තුනී සේවාදායකයා සඳහා අන්තර්ජාලය හරහා වැඩ කිරීමේ හැකියාව එකතු කළෙමු (අපගේ සමහර තරඟකරුවන්, මාර්ගය වන විට, එහි නතර විය; අනෙක් අය, ඊට පටහැනිව, තුනී සේවාදායකයා අතහැර දමා වෙබ් සේවාදායකයක් ක්‍රියාත්මක කිරීමට සීමා විය). අපගේ පරිශීලකයින්ට වඩාත් ගැලපෙන සේවාදායක විකල්පය තෝරා ගැනීමට අවස්ථාව ලබා දීමට අපි තීරණය කළෙමු.

1C වෙබ් සේවාදායකයා ගැන

තුනී සේවාදායකයා වෙත වෙබ් පාදක හැකියාවන් එකතු කිරීම සේවාදායක-සේවාදායක ගෘහ නිර්මාණ ශිල්පයේ සම්පූර්ණ වෙනසක් සහිත විශාල ව්‍යාපෘතියක් විය. වෙබ් සේවාදායකයක් නිර්මාණය කිරීම මුල සිටම ආරම්භ වන සම්පූර්ණයෙන්ම නව ව්යාපෘතියකි.

ගැටලුව ප්රකාශ කිරීම

එබැවින්, ව්‍යාපෘති අවශ්‍යතා: වෙබ් සේවාදායකයා තුනී සේවාලාභියා ලෙසම කළ යුතුය, එනම්:

  1. පරිශීලක අතුරුමුහුණත පෙන්වන්න
  2. 1C භාෂාවෙන් ලියා ඇති සේවාදායක කේතය ක්‍රියාත්මක කරන්න

1C හි පරිශීලක අතුරුමුහුණත දෘශ්‍ය සංස්කාරකයක විස්තර කර ඇත, නමුත් ප්‍රකාශනාත්මකව, මූලද්‍රව්‍යවල පික්සලයෙන් පික්සල සැකැස්මකින් තොරව; අතුරුමුහුණත් මූලද්‍රව්‍ය දුසිම් තුනක් පමණ භාවිතා වේ - බොත්තම්, ආදාන ක්ෂේත්‍ර (පෙළ, සංඛ්‍යාත්මක, දිනය/වේලාව), ලැයිස්තු, වගු, ප්‍රස්ථාර ආදිය.

1C භාෂාවේ සේවාලාභී කේතයේ සේවාදායක ඇමතුම්, දේශීය සම්පත් සමඟ වැඩ කිරීම (ගොනු, ආදිය), මුද්‍රණය කිරීම සහ තවත් බොහෝ දේ අඩංගු විය හැක.

තුනී සේවාදායකයා (වෙබ් හරහා වැඩ කරන විට) සහ වෙබ් සේවාලාභියා යන දෙකම 1C යෙදුම් සේවාදායකය සමඟ සන්නිවේදනය කිරීමට එකම වෙබ් සේවා කට්ටලයක් භාවිතා කරයි. සේවාලාභී ක්‍රියාත්මක කිරීම්, ඇත්ත වශයෙන්ම, වෙනස් ය - තුනී සේවාදායකයා C++ වලින් ලියා ඇත, වෙබ් සේවාදායකයා ජාවාස්ක්‍රිප්ට් වලින් ලියා ඇත.

ඉතිහාසය ටිකක්

වෙබ් සේවාදායක ව්‍යාපෘතිය 2006 දී (සාමාන්‍යයෙන්) 5 දෙනෙකුගෙන් යුත් කණ්ඩායමක් සමඟ ආරම්භ විය. ව්යාපෘතියේ ඇතැම් අවධීන්හිදී, විශේෂිත ක්රියාකාරිත්වය (පැතුරුම්පත් ලේඛනය, රූප සටහන්, ආදිය) ක්රියාත්මක කිරීම සඳහා සංවර්ධකයින් සම්බන්ධ විය; රීතියක් ලෙස, සිහින් සේවාදායකයා තුළ මෙම ක්‍රියාකාරිත්වය කළ එකම සංවර්ධකයින් මෙයයි. එම. සංවර්ධකයින් විසින් කලින් C++ හි නිර්මාණය කර ඇති JavaScript හි සංරචක නැවත ලියා ඇත.

භාෂා දෙක අතර ඇති ප්‍රබල සංකල්පමය වෙනස්කම් හේතුවෙන් C++ තුනී සේවාදායක කේතය JavaScript වෙබ් සේවාදායකයා බවට පරිවර්තනය කිරීමේ අදහස ආරම්භයේ සිටම අපි ප්‍රතික්ෂේප කළෙමු; වෙබ් සේවාදායකයා මුල සිටම JavaScript වලින් ලියා ඇත.

ව්‍යාපෘතියේ පළමු පුනරාවර්තන වලදී, වෙබ් සේවාලාභියා විසින් ගොඩනඟන ලද 1C භාෂාවේ සේවාදායක කේතය සෘජුවම JavaScript බවට පරිවර්තනය කරන ලදී. තුනී සේවාදායකයා වෙනස් ලෙස ක්‍රියා කරයි - බිල්ට් 1C භාෂාවේ කේතය බයිට්කේතයට සම්පාදනය කරනු ලැබේ, පසුව මෙම බයිට්කේතය සේවාදායකයා මත අර්ථ නිරූපණය කෙරේ. පසුව, වෙබ් සේවාදායකයා එයම කිරීමට පටන් ගත්තේය - පළමුව, එය කාර්ය සාධන වාසියක් ලබා දුන් අතර, දෙවනුව, සිහින් සහ වෙබ් සේවාදායකයින්ගේ ගෘහ නිර්මාණ ශිල්පය ඒකාබද්ධ කිරීමට එය හැකි විය.

1C:Enterprise වේදිකාවේ පළමු අනුවාදය වෙබ් සේවාදායක සහාය ඇතිව 2009 දී නිකුත් කරන ලදී. එකල වෙබ් සේවාදායකයා බ්‍රව්සර් 2 කට සහය දුන්නේය - Internet Explorer සහ Firefox. මුල් සැලසුම් වලට ඔපෙරා සඳහා සහය ඇතුළත් විය, නමුත් ඔපෙරා හි යෙදුම් වසා දැමීමේ හසුරුවන්නා සමඟ එකල ඇති කළ නොහැකි ගැටලු හේතුවෙන් (යෙදුම අවසන් වන බව 100% නිශ්චිතව නිරීක්ෂණය කිරීමට නොහැකි වූ අතර ඒ මොහොතේ සිට විසන්ධි කිරීමේ ක්‍රියා පටිපාටිය සිදු කරන්න. මෙම සැලසුම් වලින් 1C යෙදුම් සේවාදායකය) අත්හැරීමට සිදු විය.

ව්යාපෘති ව්යුහය

සමස්තයක් වශයෙන්, 1C: Enterprise වේදිකාවට JavaScript වලින් ලියා ඇති ව්‍යාපෘති 4ක් ඇත:

  1. WebTools - වෙනත් ව්‍යාපෘති විසින් භාවිතා කරන බෙදාගත් පුස්තකාල (අපි ද ඇතුළත් කරමු Google වසා දැමීමේ පුස්තකාලය).
  2. පාලන මූලද්රව්යය ආකෘතිගත ලේඛනය (Thin client සහ web client යන දෙකෙහිම JavaScript වලින් ක්‍රියාත්මක කර ඇත)
  3. පාලන මූලද්රව්යය උපලේඛනකරු (Thin client සහ web client යන දෙකෙහිම JavaScript වලින් ක්‍රියාත්මක කර ඇත)
  4. වෙබ් සේවාදායකයා

එක් එක් ව්‍යාපෘතියේ ව්‍යුහය ජාවා ව්‍යාපෘතිවල ව්‍යුහයට සමාන වේ (හෝ .NET ව්‍යාපෘති - කුමන සමීපද); අපට නාම අවකාශයන් ඇති අතර, සෑම නාම අවකාශයක්ම වෙනම ෆෝල්ඩරයක ඇත. ෆෝල්ඩරය තුළ ගොනු සහ නාම අවකාශයේ පන්ති ඇත. web client project එකේ files 1000ක් විතර තියෙනවා.

ව්‍යුහාත්මකව, වෙබ් සේවාදායකයා බොහෝ දුරට පහත උප පද්ධතිවලට බෙදා ඇත:

  • කළමනාකරණය කළ සේවාදායක යෙදුම් අතුරුමුහුණත
    • සාමාන්‍ය යෙදුම් අතුරුමුහුණත (පද්ධති මෙනු, පැනල්)
    • පාලනයන් 30ක් පමණ (බොත්තම්, විවිධ වර්ගවල ආදාන ක්ෂේත්‍ර - පෙළ, සංඛ්‍යාත්මක, දිනය/වේලාව යනාදිය, වගු, ලැයිස්තු, ප්‍රස්ථාර, ආදිය) ඇතුළුව කළමනාකරණය කළ පෝරමවල අතුරු මුහුණත.

  • සේවාලාභියා මත සංවර්ධකයින්ට ලබා ගත හැකි වස්තු ආකෘතිය (මුළු වර්ග 400 කට වඩා: කළමනාකරණය කළ අතුරුමුහුණත් වස්තු ආකෘතිය, දත්ත පිරිසැලසුම් සැකසීම්, කොන්දේසි සහිත මෝස්තරය, ආදිය)
  • බිල්ට් 1C භාෂාවේ පරිවර්තකය
  • බ්‍රවුසර දිගු (JavaScript හි සහය නොදක්වන ක්‍රියාකාරීත්වය සඳහා භාවිතා වේ)
    • ගුප්ත ලේඛන සමඟ වැඩ කිරීම
    • ගොනු සමඟ වැඩ කිරීම
    • බාහිර සංරචකවල තාක්ෂණය, ඒවා තුනී සහ වෙබ් සේවාදායකයින් තුළ භාවිතා කිරීමට ඉඩ සලසයි

සංවර්ධන අංග

ඉහත සියල්ල JavaScript හි ක්‍රියාත්මක කිරීම පහසු නැත. සමහර විට 1C වෙබ් සේවාලාභියා යනු JavaScript හි ලියා ඇති විශාලතම සේවාදායක පැත්තේ යෙදුම් වලින් එකකි - පේළි 450.000 ක් පමණ. එවැනි විශාල ව්‍යාපෘතියක් සමඟ වැඩ කිරීම සරල කරන වෙබ් සේවාදායක කේතය තුළ අපි වස්තු-නැඹුරු ප්‍රවේශයක් ක්‍රියාකාරීව භාවිතා කරමු.

සේවාදායක කේතයේ ප්‍රමාණය අවම කිරීම සඳහා, අපි මුලින්ම අපගේම obfuscator භාවිතා කළ අතර, වේදිකා අනුවාදය 8.3.6 (ඔක්තෝබර් 2014) සිට අපි භාවිතා කිරීමට පටන් ගත්තෙමු. Google Closure Compiler. සංඛ්‍යා භාවිතා කිරීමේ බලපෑම - අපැහැදිලි වීමෙන් පසු වෙබ් සේවාදායක රාමුවේ ප්‍රමාණය:

  • තමන්ගේම obfuscator - 1556 kb
  • Google Closure Compiler - 1073 kb

Google Closure Compiler භාවිතා කිරීම අපගේම obfuscator හා සසඳන විට වෙබ් සේවාලාභියාගේ කාර්ය සාධනය 30% කින් වැඩි දියුණු කිරීමට උපකාරී විය. මීට අමතරව, යෙදුම මගින් පරිභෝජනය කරන මතක ප්රමාණය 15-25% කින් අඩු වී ඇත (බ්රවුසරය මත පදනම්ව).

Google Closure Compiler වස්තු-නැඹුරු කේතය සමඟ ඉතා හොඳින් ක්‍රියා කරයි, එබැවින් වෙබ් සේවාදායකයා සඳහා එහි කාර්යක්ෂමතාව හැකිතාක් ඉහළ ය. Closure Compiler අපට හොඳ දේවල් කිහිපයක් කරයි:

  • ව්‍යාපෘති ගොඩනැගීමේ අදියරේදී ස්ථිතික වර්ගය පරීක්ෂා කිරීම (JSDoc අනුසටහන් සමඟ අපි කේතය ආවරණය කරන බව සහතික කරයි). එහි ප්‍රතිඵලය වන්නේ ස්ථිතික ටයිප් කිරීම, C++ ටයිප් කිරීමට ඉතා ආසන්න මට්ටමේ ය. මෙය ව්‍යාපෘති සම්පාදන අදියරේදී තරමක් විශාල දෝෂ ප්‍රතිශතයක් අල්ලා ගැනීමට උපකාරී වේ.
  • අපැහැදිලි කිරීම හරහා කේත ප්‍රමාණය අඩු කිරීම
  • ක්‍රියාත්මක කරන ලද කේතයේ ප්‍රශස්තකරණයන් ගණනාවක්, උදාහරණයක් ලෙස:
    • පේළිගත ශ්‍රිත ආදේශන. ජාවාස්ක්‍රිප්ට් හි ශ්‍රිතයක් ඇමතීම තරමක් මිල අධික ක්‍රියාවක් වන අතර නිතර භාවිතා කරන කුඩා ක්‍රමවල පේළිගත ආදේශන මඟින් කේතය සැලකිය යුතු ලෙස වේගවත් කරයි.
    • සම්පාදනය කරන අවස්ථාවේ නියත ගණන් කිරීම. ප්‍රකාශනයක් නියතයක් මත රඳා පවතී නම්, නියතයේ සැබෑ අගය එයට ආදේශ කරනු ලැබේ

අපි WebStorm අපගේ වෙබ් සේවාදායක සංවර්ධන පරිසරය ලෙස භාවිතා කරමු.

කේත විශ්ලේෂණය සඳහා අපි භාවිතා කරමු soundQube, අපි ස්ථිතික කේත විශ්ලේෂක ඒකාබද්ධ කරන තැන. විශ්ලේෂක භාවිතා කරමින්, අපි ජාවාස්ක්‍රිප්ට් ප්‍රභව කේතයේ ගුණාත්මක භාවය පිරිහීම නිරීක්ෂණය කර එය වැළැක්වීමට උත්සාහ කරමු.

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 (){}

අපි එය ප්‍රධාන ධාරාව වීමට පෙර Virtual DOM භාවිතා කළෙමු)

සංකීර්ණ Web UI සමඟ කටයුතු කරන සියලුම සංවර්ධකයින් මෙන්, DOM ගතික පරිශීලක අතුරුමුහුණත් සමඟ වැඩ කිරීමට නුසුදුසු බව අපට ඉක්මනින් වැටහුණි. වහාම වාගේ, UI සමඟ වැඩ ප්‍රශස්ත කිරීම සඳහා Virtual DOM හි ප්‍රතිසමයක් ක්‍රියාත්මක කරන ලදී. සිදුවීම් සැකසීමේදී, සියලුම DOM වෙනස්කම් මතකයේ ගබඩා කර ඇති අතර, සියලු මෙහෙයුම් අවසන් වූ විට පමණක්, සමුච්චිත වෙනස්කම් DOM ගසට යොදනු ලැබේ.

වෙබ් සේවාදායකයා ප්‍රශස්ත කිරීම

අපගේ වෙබ් සේවාදායකයා වේගයෙන් ක්‍රියා කිරීමට, අපි සම්මත බ්‍රවුසර හැකියාවන් (CSS, ආදිය) උපරිම ලෙස භාවිතා කිරීමට උත්සාහ කරමු. මේ අනුව, ආකෘති විධාන පැනලය (යෙදුමේ සෑම ආකාරයකම පාහේ පිහිටා ඇත) CSS මත පදනම් වූ ගතික පිරිසැලසුම භාවිතා කරමින් බ්‍රවුසර මෙවලම් භාවිතයෙන් පමණක් විදැහුම් කරනු ලැබේ.

1C වෙබ් සේවාදායකයා ගැන

පරීක්ෂා කිරීම

ක්‍රියාකාරී සහ කාර්ය සාධන පරීක්ෂාව සඳහා, අපි හිමිකාර මෙවලමක් (ජාවා සහ C++ වලින් ලියා ඇත), මෙන්ම ඉහළින් ගොඩනගා ඇති පරීක්ෂණ කට්ටලයක් භාවිතා කරමු. සෙලේනියම්.

අපගේ මෙවලම විශ්වීය වේ - එය ඔබට ඕනෑම කවුළු සහිත වැඩසටහනක් පාහේ පරීක්ෂා කිරීමට ඉඩ සලසයි, එබැවින් තුනී සේවාදායකයෙකු සහ වෙබ් සේවාදායකයෙකු පරීක්ෂා කිරීම සඳහා සුදුසු වේ. මෙවලම 1C යෙදුම් විසඳුම ස්ක්‍රිප්ට් ගොනුවකට දියත් කළ පරිශීලකයාගේ ක්‍රියා වාර්තා කරයි. ඒ සමගම, තිරයේ වැඩ කරන ප්රදේශයේ රූප - ප්රමිතීන් - වාර්තා කරනු ලැබේ. වෙබ් සේවාලාභියාගේ නව අනුවාද නිරීක්ෂණය කරන විට, පරිශීලක සහභාගීත්වයෙන් තොරව ස්ක්‍රිප්ට් වාදනය වේ. තිර රුවක් කිසිදු පියවරකදී යොමුව සමඟ නොගැලපෙන අවස්ථාවන්හිදී, පරීක්ෂණය අසාර්ථක යැයි සලකනු ලැබේ, පසුව ගුණාත්මක විශේෂඥයෙකු විසින් මෙය දෝෂයක් හෝ පද්ධතියේ හැසිරීම් වල සැලසුම්ගත වෙනසක් දැයි තීරණය කිරීමට පරීක්ෂණයක් පවත්වයි. සැලසුම් සහගත හැසිරීම් වලදී, සම්මතයන් ස්වයංක්රීයව නව ඒවා සමඟ ප්රතිස්ථාපනය වේ.

මෙවලම මිලි තත්පර 25ක් දක්වා නිරවද්‍යතාවයකින් යෙදුම් කාර්ය සාධනය ද මනිනු ලබයි. සමහර අවස්ථාවලදී, කාලයත් සමඟ ක්‍රියාත්මක කිරීමේ කාලය පිරිහීම විශ්ලේෂණය කිරීමට අපි ස්ක්‍රිප්ට් කොටස් ලූප් කරන්නෙමු (උදාහරණයක් ලෙස, ඇණවුම් ඇතුළත් කිරීම කිහිප වතාවක් පුනරාවර්තනය කිරීම). සියලුම මිනුම්වල ප්රතිඵල විශ්ලේෂණය සඳහා ලොගයක සටහන් කර ඇත.

1C වෙබ් සේවාදායකයා ගැන
පරීක්ෂණය යටතේ අපගේ පරීක්ෂණ මෙවලම සහ යෙදුම

අපගේ මෙවලම සහ සෙලේනියම් එකිනෙකට අනුපූරකය; උදාහරණයක් ලෙස, එක් තිරයක යම් බොත්තමක් එහි පිහිටීම වෙනස් කර ඇත්නම්, සෙලේනියම් මෙය නිරීක්ෂණය නොකරනු ඇත, නමුත් අපගේ මෙවලම දකිනු ඇත, මන්ද සම්මතය සමඟ තිර රුවක් පික්සලයෙන් පික්සලයෙන් සංසන්දනය කරයි. යතුරුපුවරුවෙන් හෝ මූසිකයෙන් ආදානය සැකසීමේ ගැටළු නිරීක්ෂණය කිරීමට මෙවලමට හැකි වේ, මන්ද එය ප්‍රතිනිෂ්පාදනය කරන්නේ මෙයයි.

මෙවලම් දෙකෙහිම පරීක්ෂණ (අපගේ සහ සෙලේනියම්) අපගේ යෙදුම් විසඳුම්වලින් සාමාන්‍ය වැඩ අවස්ථා ධාවනය කරයි. 1C:Enterprise වේදිකාවේ දෛනික ගොඩනැගීමෙන් පසු පරීක්ෂණ ස්වයංක්‍රීයව දියත් කෙරේ. ස්ක්‍රිප්ට් මන්දගාමී නම් (පෙර ගොඩනැගීමට සාපේක්ෂව), අපි මන්දගාමී වීමට හේතුව විමර්ශනය කර විසඳන්නෙමු. අපගේ නිර්ණායකය සරලයි - නව ගොඩනැගීම පෙර එකට වඩා මන්දගාමී නොවිය යුතුය.

මන්දගාමී සිදුවීම් විමර්ශනය කිරීමට සංවර්ධකයින් විවිධ මෙවලම් භාවිතා කරයි; ප්රධාන වශයෙන් භාවිතා වේ Dynatrace AJAX සංස්කරණය නිෂ්පාදන සමාගම ඩයිනට්රේස්. පෙර සහ නව ගොඩනැගීම්වල ගැටළුකාරී මෙහෙයුම ක්‍රියාත්මක කිරීමේ ලඝු-සටහන් සටහන් කරනු ලැබේ, පසුව ලඝු-සටහන් විශ්ලේෂණය කරනු ලැබේ. ඒ අතරම, තනි මෙහෙයුම් (මිලි තත්පර වලින්) ක්‍රියාත්මක කිරීමේ කාලය තීරණාත්මක සාධකයක් නොවිය හැකිය - කසළ එකතු කිරීම වැනි සේවා ක්‍රියාවලීන් බ්‍රවුසරයේ වරින් වර දියත් කරනු ලැබේ, ඒවා ක්‍රියාත්මක වන කාලය සමඟ අතිච්ඡාදනය වී පින්තූරය විකෘති කළ හැකිය. මෙම අවස්ථාවෙහි වඩාත් අදාළ පරාමිතීන් වනුයේ ක්‍රියාත්මක කරන ලද ජාවාස්ක්‍රිප්ට් උපදෙස් සංඛ්‍යාව, DOM හි පරමාණුක මෙහෙයුම් ගණන යනාදියයි. නව අනුවාදයක එකම ස්ක්‍රිප්ට් එකෙහි ඇති උපදෙස්/මෙහෙයුම් සංඛ්‍යාව වැඩි වී තිබේ නම්, මෙය සෑම විටම පාහේ නිවැරදි කළ යුතු කාර්ය සාධනයේ පහත වැටීමක් අදහස් කරයි.

එසේම, කාර්ය සාධනය පහත වැටීමට එක් හේතුවක් විය හැක්කේ කිසියම් හේතුවක් නිසා Google Closure Compiler හට ශ්‍රිතයේ පේළිගත ආදේශනය සිදු කිරීමට නොහැකි වීමයි (උදාහරණයක් ලෙස, ශ්‍රිතය පුනරාවර්තන හෝ අථත්‍ය නිසා). මෙම අවස්ථාවේදී, අපි මූල කේතය නැවත ලිවීමෙන් තත්ත්වය නිවැරදි කිරීමට උත්සාහ කරමු.

බ්රවුසර දිගු

යෙදුම් විසඳුමකට JavaScript හි නොමැති ක්‍රියාකාරීත්වයක් අවශ්‍ය වූ විට, අපි බ්‍රවුසර දිගු භාවිතා කරමු:

  • ගොනු සමඟ වැඩ කිරීම සඳහා
  • ගුප්ත ලේඛන සමඟ වැඩ කිරීම සඳහා
  • සමඟ වැඩ කරන්න බාහිර සංරචක

අපගේ දිගු කොටස් දෙකකින් සමන්විත වේ. පළමු කොටස බ්‍රව්සර් දිගුවක් ලෙස හැඳින්වේ (සාමාන්‍යයෙන් ජාවාස්ක්‍රිප්ට් වලින් ලියා ඇති ක්‍රෝම් සහ ෆයර්ෆොක්ස් සඳහා දිගු), එය දෙවන කොටස සමඟ අන්තර් ක්‍රියා කරයි - අපට අවශ්‍ය ක්‍රියාකාරිත්වය ක්‍රියාත්මක කරන ද්විමය දිගුවකි. අපි ද්විමය දිගුවල අනුවාද 3 ක් ලියන බව සඳහන් කළ යුතුය - Windows, Linux සහ MacOS සඳහා. ද්විමය දිගුව 1C: Enterprise වේදිකාවේ කොටසක් ලෙස සපයනු ලබන අතර එය 1C යෙදුම් සේවාදායකයේ පිහිටා ඇත. වෙබ් සේවාදායකයකින් පළමු වරට ඇමතූ විට, එය සේවාදායක පරිගණකයට බාගත කර බ්‍රව්සරයේ ස්ථාපනය කෙරේ.

Safari හි ධාවනය වන විට, අපගේ දිගු NPAPI භාවිතා කරයි; Internet Explorer හි ධාවනය වන විට, ඔවුන් ActiveX තාක්ෂණය භාවිතා කරයි. මයික්රසොෆ්ට් එජ් තවමත් දිගු සඳහා සහය නොදක්වයි, එබැවින් එහි ඇති වෙබ් සේවාදායකයා සීමාවන් සමඟ ක්‍රියා කරයි.

තවදුරටත් සංවර්ධනය

වෙබ් සේවාදායක සංවර්ධන කණ්ඩායම සඳහා වන එක් කාර්යයක් වන්නේ ක්‍රියාකාරීත්වය තවදුරටත් වර්ධනය කිරීමයි. වෙබ් සේවාදායකයාගේ ක්‍රියාකාරීත්වය තුනී සේවාදායකයාගේ ක්‍රියාකාරීත්වයට සමාන විය යුතුය; සියලුම නව ක්‍රියාකාරීත්වය තුනී සහ වෙබ් සේවාදායකයින් තුළ එකවර ක්‍රියාත්මක වේ.

අනෙකුත් කාර්යයන් අතර ගෘහ නිර්මාණ ශිල්පය සංවර්ධනය කිරීම, ප්‍රතිනිර්මාණය කිරීම, කාර්ය සාධනය සහ විශ්වසනීයත්වය වැඩි දියුණු කිරීම ඇතුළත් වේ. උදාහරණයක් ලෙස, එක් දිශාවක් වන්නේ අසමමුහුර්ත වැඩ ආකෘතියක් දෙසට තවදුරටත් ගමන් කිරීමයි. වෙබ් සේවාදායකයාගේ සමහර ක්‍රියාකාරීත්වය දැනට සේවාදායකය සමඟ අන්තර්ක්‍රියා කිරීමේ සමමුහුර්ත ආකෘතියක් මත ගොඩනගා ඇත. අසමමුහුර්ත ආකෘතිය දැන් බ්‍රවුසරවල (සහ බ්‍රව්සර්වල පමණක් නොව) වඩාත් අදාළ වෙමින් පවතින අතර, සමමුහුර්ත ඇමතුම් අසමමුහුර්ත ඒවා සමඟ ප්‍රතිස්ථාපනය කිරීමෙන් (සහ ඒ අනුව කේතය ප්‍රතිනිර්මාණය කිරීමෙන්) වෙබ් සේවාදායකයා වෙනස් කිරීමට මෙය අපට බල කරයි. අසමමුහුර්ත ආකෘතියකට ක්‍රමයෙන් සංක්‍රමණය වීම, මුදා හරින ලද විසඳුම් සඳහා සහය දැක්වීමේ අවශ්‍යතාවය සහ ඒවා ක්‍රමයෙන් අනුවර්තනය වීම මගින් පැහැදිලි කෙරේ.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න