Polyfill (programming)
மென்பொருள் மேம்பாட்டில், பாலிஃபில் என்பது மேம்பாட்டு சூழலின் ஒரு அம்சத்தை செயல்படுத்தும் குறியீடாகும், இது அந்த அம்சத்தை சொந்தமாக ஆதரிக்காது. பெரும்பாலும், இது ஒரு ஜாவாஸ்கிரிப்ட் நூலகத்தைக் குறிக்கிறது, இது ஒரு எச். டி. எம். எல் 5 அல்லது சி. எஸ். எஸ் வலைத் தரநிலையை செயல்படுத்துகிறது, பழைய உலாவிகளில் ஒரு நிறுவப்பட்ட தரநிலை (சில உலாவிகளால் ஆதரிக்கப்படுகிறது) அல்லது ஏற்கனவே உள்ள உலாவிகளில் முன்மொழியப்பட்ட தரநிலை (எந்த உலாவிகளாலும் ஆதரிக்கப்படவில்லை). பாலிஃபில்கள் PHP மற்றும் பைத்தானிலும் பயன்படுத்தப்படுகின்றன. முறைப்படி, "பாலிஃபில் என்பது உலாவி ஏபிஐக்கான ஷிம் ஆகும்". பாலிஃபில்ஸ் வலை டெவலப்பர்கள் ஒரு ஏபிஐ ஒரு உலாவியால் ஆதரிக்கப்படுகிறதா இல்லையா என்பதைப் பொருட்படுத்தாமல், பொதுவாக குறைந்தபட்ச மேல்நிலையுடன் பயன்படுத்த அனுமதிக்கிறது. பொதுவாக அவர்கள் முதலில் ஒரு உலாவி ஒரு ஏபிஐ ஐ ஆதரிக்கிறதா என்று சரிபார்த்து, கிடைத்தால் அதைப் பயன்படுத்துகிறார்கள், இல்லையெனில் தங்கள் சொந்த செயல்பாட்டைப் பயன்படுத்துகிறார்கள். பாலிஃபில்கள் மற்ற, அதிக ஆதரவு அம்சங்களைப் பயன்படுத்துகின்றன, இதனால் வெவ்வேறு உலாவிகளுக்கு வெவ்வேறு பாலிஃபில்கள் தேவைப்படலாம். இந்த சொல் ஒரு வினைச்சொல்லாகவும் பயன்படுத்தப்படுகிறதுஃ பாலிஃபில்லிங் என்பது ஒரு அம்சத்திற்கு பாலிஃபில் வழங்குவதாகும். வரையறை இந்த சொல் ஒரு புதிய சொல், ரெமி ஷார்ப் என்பவரால் உருவாக்கப்பட்டது, அவர் 2009 இல் அறிமுகப்படுத்தும் எச். டி. எம். எல் 5 புத்தகத்தை இணைந்து எழுதும்போது, "ஜாவாஸ்கிரிப்ட் (அல்லது ஃப்ளாஷ் அல்லது எதுவாக இருந்தாலும்) பயன்படுத்தி ஒரு ஏபிஐயைப் பிரதிபலிக்க வேண்டும்" என்று ஒரு சொல் தேவைப்பட்டது. முறைப்படி, "ஒரு ஷிம் என்பது ஒரு பழைய சூழலுக்கு ஒரு புதிய ஏபிஐயைக் கொண்டுவரும் ஒரு நூலகமாகும், அந்த சூழலின் வழிமுறைகளை மட்டுமே பயன்படுத்துகிறது". பாலிஃபில்கள் இந்த வரையறைக்கு சரியாக பொருந்துகின்றன; ஷிம் என்ற சொல் ஆரம்பகால பாலிஃபில்களுக்கும் பயன்படுத்தப்பட்டது. இருப்பினும், ஷார்ப் ஷிம் என்பது வெளிப்படையான ஏபிஐக்கள் மற்றும் பணித்தொகுப்புகளைக் குறிக்கிறது, தளவமைப்புக்கான ஸ்பேசர் ஜிஐஎஃப்கள், சில நேரங்களில் shim.gif என்று அழைக்கப்படுகிறது, மேலும் முற்போக்கான மேம்பாடு மற்றும் அழகான சீரழிவு போன்ற ஒத்த சொற்கள் பொருத்தமானவை அல்ல, எனவே அவர் ஒரு புதிய வார்த்தையைக் கண்டுபிடித்தார். இந்த சொல் பல்நோக்கு நிரப்புதல் பேஸ்ட் பிராண்ட் பாலிஃபில்லாவை அடிப்படையாகக் கொண்டது, இது சுவர்களில் உள்ள விரிசல்கள் மற்றும் துளைகளை மறைக்கப் பயன்படுத்தப்படும் ஒரு பேஸ்ட் மற்றும் "பல (பாலி-) வழிகளில் துளைகளை (செயல்பாட்டில்) நிரப்புதல்" என்று பொருள்படும். இந்த வார்த்தை பின்னர் பிரபலமடைந்துள்ளது, குறிப்பாக பால் ஐரிஷ் மற்றும் மாடர்னிஸ்ர் ஆவணங்களில் பயன்படுத்தப்பட்டதால். ஷார்ப் செய்யும் வேறுபாடு என்னவென்றால்ஃ இந்த வேறுபாடு மற்ற எழுத்தாளர்களால் வரையப்படவில்லை. சில நேரங்களில் ஷிம்கள், பாலிஃபில்கள் மற்றும் ஃபால்பேக்குகளுக்கு இடையில் பல்வேறு வேறுபாடுகள் வரையப்படுகின்றன, ஆனால் பொதுவாக ஏற்றுக்கொள்ளப்பட்ட வேறுபாடுகள் எதுவும் இல்லைஃ பெரும்பாலானவை பாலிஃபில்களை ஷிமின் ஒரு வடிவமாக கருதுகின்றன. பாலிஃபில்லர் என்ற சொல் எப்போதாவது காணப்படுகிறது. எடுத்துக்காட்டுகள் கோர்-ஜேஎஸ் கோர்-ஜேஎஸ் மிகவும் பிரபலமான ஜாவாஸ்கிரிப்ட் நிலையான நூலக பாலிஃபில்லில் ஒன்றாகும். தரநிலையின் சமீபத்திய பதிப்பு வரை ஈசிஎம்ஏஸ்கிரிப்டுக்கான பாலிஃபில்கள் அடங்கும்ஃ வாக்குறுதிகள், சின்னங்கள், சேகரிப்புகள், மறு செய்கைகள், தட்டச்சு செய்யப்பட்ட வரிசைகள், பல அம்சங்கள், ஈசிஎம்ஏஸ்கிரிப்ட் முன்மொழிவுகள், சில குறுக்கு-தளமான வாட் டபிள்யூஜி/டபிள்யூ 3 சி அம்சங்கள் மற்றும் யுஆர்எல் போன்ற முன்மொழிவுகள். நீங்கள் தேவையான அம்சங்களை மட்டுமே ஏற்றலாம் அல்லது உலகளாவிய பெயர் இடம் மாசுபாடு இல்லாமல் அதைப் பயன்படுத்தலாம். இது பாபெலுடன் ஒருங்கிணைக்கப்படலாம், இது உங்கள் குறியீட்டில் தேவையான கோர்-ஜேஎஸ் தொகுதிகளை தானாக செலுத்த அனுமதிக்கிறது. எச். டி. எம். எல் 5 ஷிவ் 9 க்கு முந்தைய ஐ. இ பதிப்புகளில், அறியப்படாத எச். டி. எம். எல் கூறுகள் மற்றும் போன்றவை வெற்று கூறுகளாகப் பகுப்பாய்வு செய்யப்படும், இது பக்கத்தின் கூடு கட்டமைப்பு உடைந்து, அந்த கூறுகளை சி. எஸ். எஸ் பயன்படுத்தி ஸ்டைல் செய்ய இயலாது. மிகவும் பரவலாகப் பயன்படுத்தப்படும் பாலிஃபில்ல்களில் ஒன்றான, எச். டி. எம். எல்5ஷிவ், இந்த பிழையைச் சுற்றி வேலை செய்ய ஐ. இ. யின் மற்றொரு விழிப்பைப் பயன்படுத்துகிறதுஃ ஒவ்வொரு புதிய எச். டி. எம். எல்5 உறுப்புகளுக்கும் document.createElement ("டாக்னேம்") என்று அழைக்கிறது, இதனால் ஐ. இ. அவற்றை சரியாக பகுப்பாய்வு செய்கிறது. இது அந்த எச். டி. எம். எல் 5 கூறுகளுக்கான அடிப்படை இயல்புநிலை ஸ்டைலிங்கையும் உள்ளடக்கியது. பெரும்பாலான பாலிஃபில்கள் காலாவதியான உலாவிகளை இலக்காகக் கொண்டிருந்தாலும், சில நவீன உலாவிகளை இன்னும் கொஞ்சம் முன்னோக்கி தள்ள உள்ளன. லீ வெரோவின்-முன்னொட்டு-இல்லாத பாலிஃபில் அத்தகைய ஒரு பாலிஃபில் ஆகும், இது தற்போதைய உலாவிகளை பல சிஎஸ்எஸ் 3 பண்புகளின் முன்னொட்டு பதிப்புகளை அடையாளம் காண அனுமதிக்கிறது, அதற்கு பதிலாக டெவலப்பர் அனைத்து விற்பனையாளர் முன்னொட்டுகளை எழுத வேண்டும். இது பக்கத்தின் பாணித்தாள்களைப் படிக்கிறது மற்றும் தற்போதைய உலாவியால் அங்கீகரிக்கப்பட்ட அவற்றின் முன்னொட்டு சகாக்களுடன் எந்தவொரு முன்னொட்டு பண்புகளையும் மாற்றுகிறது. செலக்டிவிசர் கீத் கிளார்க்கின் செலக்டிவிசர் ஒரு பிரபலமான பாலிஃபில் ஆகும், இது பல சிஎஸ்எஸ் 3 தேர்வாளர்களை ஐஇ 8 மற்றும் அதற்குக் கீழே வேலை செய்ய வைக்கிறது. இது பல அறியப்பட்ட CSS3 தேர்வாளர்களைத் தேடும் பக்கத்தின் பாணித்தாள்களைப் படிக்கிறது, பின்னர் அந்த தேர்வாளர்களுடன் பொருந்தக்கூடிய கூறுகளுக்கான ஆவணத்தை வினவ ஒரு ஜாவாஸ்கிரிப்ட் தேர்வாளர் நூலகத்தைப் பயன்படுத்துகிறது, அந்த கூறுகளுக்கு நேரடியாக பாணிகளைப் பயன்படுத்துகிறது. இது jQuery போன்ற பல ஜாவாஸ்கிரிப்ட் தேர்வாளர் நூலகங்களை ஆதரிக்கிறது. ஃப்ளெக்ஸி சிஎஸ்எஸ் 3 இன் மிகவும் எதிர்பார்க்கப்பட்ட அம்சங்களில் ஒன்றாகும், நெகிழ்வான பெட்டி தளவமைப்பு (ஏ. கே. ஏ. ஃப்ளெக்ஸ் பாக்ஸ்) இடைமுக கூறுகளை அமைப்பதற்கான மிகவும் சக்திவாய்ந்த கருவியாக இருக்கும் என்று உறுதியளிக்கிறது. வெப்கிட் மற்றும் மொஸில்லா என்ஜின்கள் பல ஆண்டுகளாக ஒரு ஆரம்ப வரைவு தொடரியல் முறையை ஆதரிக்கின்றன. ஐஇ மற்றும் ஓபராவில் அதே தொடரமைப்புக்கான ஆதரவை ஃப்ளெக்ஸி செயல்படுத்துகிறது. இருப்பினும், வரைவு விவரக்குறிப்பு ஒரு புதிய (மற்றும் மிகவும் சக்திவாய்ந்த) தொடரியலுக்கு கடுமையான திருத்தத்திற்கு உட்பட்டுள்ளது, இது இன்னும் ஃப்ளெக்ஸியால் ஆதரிக்கப்படவில்லை. ஃப்ளெக்ஸியை இன்னும் பழைய தொடரியலுடன் பயன்படுத்தலாம், ஆனால் டெவலப்பர் எதிர்கால உலாவிகளுக்கும் புதிய தொடரமைப்பைச் சேர்ப்பதை உறுதி செய்ய வேண்டும். CSS3 PIE PIE ("முற்போக்கான இன்டர்நெட் எக்ஸ்ப்ளோரர்") IE இல் மிகவும் பிரபலமான காணாமல் போன CSS3 பெட்டி அலங்கார பண்புகளில் சிலவற்றை செயல்படுத்துகிறது, இதில் IE 8 மற்றும் அதற்குக் கீழே உள்ள எல்லை-ஆரம் மற்றும் பெட்டி-நிழல் மற்றும் IE 9 மற்றும் அதற்குக் கீழே உள்ள நேரியல்-சாய்வு பின்னணிகள் அடங்கும். HTC நடத்தையாக (ஒரு தனியுரிம IE அம்சம்) அழைக்கப்படும் இது, குறிப்பிட்ட கூறுகளில் ஆதரிக்கப்படாத CSS3 பண்புகளைத் தேடுகிறது மற்றும் IE 6-8 க்கு VML மற்றும் IE 9 க்கு SVG ஐப் பயன்படுத்தி அந்த பண்புகளை வழங்குகிறது. அதன் ரெண்டரிங் பெரும்பாலும் சொந்த உலாவி செயல்படுத்தல்களிலிருந்து பிரித்தறிய முடியாதது மற்றும் இது டைனமிக் டிஓஎம் மாற்றத்தை நன்கு கையாளுகிறது. ஜேஎஸ்ஓஎன் 2 டக்ளஸ் க்ரோக்ஃபோர்ட் முதலில் தனது (பின்னர் வரவிருக்கும்) ஜேஎஸ்ஓஎன் தரவு வடிவமைப்பைப் படிப்பதற்கும் எழுதுவதற்கும் ஒரு ஏபிஐ ஆக json2.js ஐ எழுதினார். இது மிகவும் பரவலாகப் பயன்படுத்தப்பட்டதால், உலாவி விற்பனையாளர்கள் அதன் ஏபிஐயை சொந்தமாக செயல்படுத்தவும், அதை ஒரு நடைமுறை தரமாக மாற்றவும் முடிவு செய்தனர்; json2.js இப்போது புதிய உலாவிகளுக்கு சொந்தமான அம்சங்களை பழைய உலாவிகளில் செயல்படுத்துவதால், இது ஒரு நூலகத்திற்கு பதிலாக பாலிஃபில் ஆகிவிட்டது. ஈஎஸ்5-ஷிம் ஈசிஎம்ஏஸ்கிரிப்ட் 5வது பதிப்பு ("ஈஎஸ்5") சில பயனுள்ள புதிய ஸ்கிரிப்டிங் அம்சங்களைக் கொண்டுவருகிறது, மேலும் அவை பழைய ஜாவாஸ்கிரிப்ட் என்ஜின்களுடன் தொடரியல் ரீதியாக இணக்கமாக இருப்பதால், அவை பெரும்பாலும் உள்ளமைக்கப்பட்ட ஜேஎஸ் பொருள்களில் இணைக்கும் முறைகள் மூலம் பாலிஃபில் செய்யப்படலாம். இந்த ஈஎஸ்5-ஷிம் பாலிஃபில் இதை இரண்டு பகுதிகளாக செய்கிறதுஃ es5-shim.js முழுமையாக பாலிஃபில் செய்யப்படக்கூடிய முறைகளைக் கொண்டுள்ளது, மேலும் es5-sham.js துல்லியமாக வேலை செய்ய அடிப்படை இயந்திரத்தை அதிகம் நம்பியிருக்கும் பிற முறைகளின் பகுதியளவு செயல்படுத்தல்களைக் கொண்டுள்ளது. ஃப்ளாஷ்கான்வாஸ் ஃப்ளாஷ்கான்வாஸ் என்பது அடோப் ஃப்ளாஷ் செருகுநிரலைப் பயன்படுத்தி எச். டி. எம். எல் 5 கேன்வாஸ் ஏபிஐ-ஐ செயல்படுத்துவதாகும். ஒரு அரிய வணிக பாலிஃபில், இது கட்டண பதிப்பில் வருகிறது, அதே போல் ஒரு இலவச பதிப்பு, இதில் நிழல்கள் போன்ற சில மேம்பட்ட அம்சங்கள் இல்லை. ஃப்ளாஷ் அல்லது சில்வர்லைட் செருகுநிரல்களைப் பயன்படுத்தும் பழைய உலாவிகளில், எச். டி. எம். எல்5 மீடியா எலிமென்ட் ஏபிஐ உட்பட, <வீடியோ> மற்றும் <ஆடியோ> கூறுகளுக்கான ஜான் டையரின் MediaElement.js பாலிஃபில்ஸ் ஆதரவு. இது அந்த கூறுகளுக்கான விருப்பமான மீடியா பிளேயர் UI ஐ வழங்குகிறது, இது அனைத்து உலாவிகளிலும் சீராக உள்ளது. மொசில்லாவால் முன்மொழியப்பட்ட உலாவி ஐடி அங்கீகார நெறிமுறை, இழுவை பெறத் தவறிவிட்டது. வெப்ஷிம்ஸ் லிப் அலெக்சாண்டர் ஃபார்காஸின் வெப்ஷிம்ஸ் லிப் பல பாலிஃபில்களை ஒரே தொகுப்பாக ஒருங்கிணைக்கிறது மற்றும் வருகை தரும் உலாவிக்குத் தேவையானவற்றை மட்டுமே நிபந்தனையுடன் ஏற்றுகிறது. அந்தந்த ஆவண மொழிக்கான உலாவியால் ஏற்கனவே ஆதரிக்கப்படவில்லை என்றால் Hyphenopoly.js Hyphenopoly.js தானியங்கி ஹைபனேஷனை செயல்படுத்துகிறது. தழுவல் முறை ஷிம் (கம்ப்யூட்டிங்) ரேப்பர் நூலகம் தழுவல் வலை வடிவமைப்பு பின்னோக்கி பொருந்தக்கூடிய குறிப்புகள் குறிப்புகள் வெளிப்புற இணைப்புகள் இணக்கத்தன்மை அடுக்குகள் வலை உலாவிகள் பதிலளிக்கக்கூடிய வலை வடிவமைப்பு வலை வடிவமைப்பு வலை மேம்பாடு