Polyfill (programming)
સોફ્ટવેર વિકાસમાં, પોલીફિલ એ કોડ છે જે વિકાસ પર્યાવરણની એવી સુવિધાનો અમલ કરે છે જે મૂળ રૂપે સુવિધાને ટેકો આપતું નથી. મોટેભાગે, તે જાવાસ્ક્રિપ્ટ લાઇબ્રેરીનો ઉલ્લેખ કરે છે જે જૂના બ્રાઉઝર્સ પર સ્થાપિત ધોરણ (કેટલાક બ્રાઉઝર્સ દ્વારા સમર્થિત) અથવા હાલના બ્રાઉઝર્સ પર સૂચિત ધોરણ (કોઈપણ બ્રાઉઝર્સ દ્વારા સમર્થિત નથી) એચટીએમએલ 5 અથવા સીએસએસ વેબ સ્ટાન્ડર્ડનો અમલ કરે છે. પોલિફિલનો ઉપયોગ PHP અને પાયથોનમાં પણ થાય છે. ઔપચારિક રીતે, "પોલીફિલ એ બ્રાઉઝર API માટે એક સિમ છે". પોલીફિલ્સ વેબ ડેવલપર્સને API નો ઉપયોગ કરવાની મંજૂરી આપે છે, પછી ભલે તે બ્રાઉઝર દ્વારા સપોર્ટેડ હોય કે નહીં, અને સામાન્ય રીતે ન્યૂનતમ ઓવરહેડ સાથે. સામાન્ય રીતે તેઓ પહેલા તપાસે છે કે બ્રાઉઝર API ને સપોર્ટ કરે છે કે નહીં, અને જો ઉપલબ્ધ હોય તો તેનો ઉપયોગ કરે છે, અન્યથા તેમના પોતાના અમલીકરણનો ઉપયોગ કરે છે. પોલિફિલ્સ પોતે અન્ય, વધુ સમર્થિત સુવિધાઓનો ઉપયોગ કરે છે, અને આમ વિવિધ બ્રાઉઝર્સ માટે વિવિધ પોલિફિલ્સની જરૂર પડી શકે છે. આ શબ્દનો ઉપયોગ ક્રિયાપદ તરીકે પણ થાય છેઃ પોલિફિલિંગ એ સુવિધા માટે પોલિફિલ પ્રદાન કરે છે. વ્યાખ્યા આ શબ્દ એક નવશબ્દવાદ છે, જે રેમી શાર્પ દ્વારા રચવામાં આવ્યો હતો, જેમણે 2009 માં પરિચય એચટીએમએલ 5 પુસ્તકનું સહ-લેખન કરતી વખતે એવા શબ્દની જરૂર હતી જેનો અર્થ "જાવાસ્ક્રિપ્ટ (અથવા ફ્લેશ અથવા ગમે તે) નો ઉપયોગ કરીને એપીઆઈની નકલ કરો જો બ્રાઉઝરમાં તે મૂળ રૂપે ન હોય". ઔપચારિક રીતે, "શિમ એ એક પુસ્તકાલય છે જે ફક્ત તે વાતાવરણના સાધનોનો ઉપયોગ કરીને જૂના વાતાવરણમાં નવું API લાવે છે". પોલીફિલ્સ બરાબર આ વ્યાખ્યામાં બંધબેસે છે; શિમ શબ્દનો ઉપયોગ પ્રારંભિક પોલીફિલ્સ માટે પણ થતો હતો. જો કે, શાર્પ શિમ માટે બિન-પારદર્શક API અને ઉકેલો, જેમ કે લેઆઉટ માટે સ્પેસર GIF, જેને કેટલીકવાર shim.gif તરીકે ઓળખવામાં આવે છે, અને પ્રગતિશીલ વૃદ્ધિ અને આકર્ષક અધોગતિ જેવા સમાન શબ્દો યોગ્ય ન હતા, તેથી તેમણે એક નવા શબ્દની શોધ કરી. આ શબ્દ બહુહેતુક ભરણ પેસ્ટ બ્રાન્ડ પોલીફિલા પર આધારિત છે, જે દિવાલોમાં તિરાડો અને છિદ્રોને ઢાંકવા માટે ઉપયોગમાં લેવામાં આવતી પેસ્ટ છે, અને તેનો અર્થ "ઘણી (પોલી-) રીતે છિદ્રો (કાર્યક્ષમતામાં) ભરો" થાય છે. ત્યારથી આ શબ્દને લોકપ્રિયતા મળી છે, ખાસ કરીને પોલ આઇરિશ દ્વારા અને મોડર્નિઝર દસ્તાવેજીકરણમાં તેના ઉપયોગને કારણે. શાર્પ જે તફાવત કરે છે તે છેઃ આ તફાવત અન્ય લેખકો દ્વારા દોરવામાં આવ્યો નથી. કેટલીકવાર શિમ્સ, પોલિફિલ્સ અને ફોલબેક્સ વચ્ચે અન્ય વિવિધ તફાવતો દોરવામાં આવે છે, પરંતુ ત્યાં કોઈ સામાન્ય રીતે સ્વીકૃત તફાવતો નથીઃ મોટાભાગના લોકો પોલિફિલ્સને શિમનું એક સ્વરૂપ માને છે. પોલીફિલર શબ્દ પણ ક્યારેક જોવા મળે છે. ઉદાહરણો કોર-જેએસ કોર-જેએસ એ સૌથી લોકપ્રિય જાવાસ્ક્રિપ્ટ સ્ટાન્ડર્ડ લાઇબ્રેરી પોલિફિલમાંથી એક છે. ધોરણના નવીનતમ સંસ્કરણ સુધી ઇસીએમએસ્ક્રિપ્ટ માટે પોલીફિલનો સમાવેશ થાય છેઃ વચનો, પ્રતીકો, સંગ્રહો, પુનરાવર્તકો, ટાઇપ કરેલા એરે, અન્ય ઘણી સુવિધાઓ, ઇસીએમએસ્ક્રિપ્ટ દરખાસ્તો, કેટલાક ક્રોસ-પ્લેટફોર્મ ડબ્લ્યુએચએટીડબલ્યુજી/ડબલ્યુ 3સી સુવિધાઓ અને યુઆરએલ જેવી દરખાસ્તો. તમે માત્ર જરૂરી સુવિધાઓ લોડ કરી શકો છો અથવા વૈશ્વિક નેમસ્પેસ પ્રદૂષણ વિના તેનો ઉપયોગ કરી શકો છો. તેને બેબલ સાથે સંકલિત કરી શકાય છે, જે તેને તમારા કોડમાં જરૂરી કોર-જેએસ મોડ્યુલો આપમેળે દાખલ કરવાની મંજૂરી આપે છે. એચ. ટી. એમ. એલ. 5 શિવ 9 પહેલાંની આઇ. ઇ. આવૃત્તિઓમાં, અજ્ઞાત એચ. ટી. એમ. એલ. ઘટકો જેમ કે અને ખાલી ઘટકો તરીકે પદચ્છેદન કરવામાં આવશે, જે પૃષ્ઠના માળખાને તોડી નાખશે અને તે તત્વોને સી. એસ. એસ. નો ઉપયોગ કરીને શૈલી બનાવવાનું અશક્ય બનાવશે. સૌથી વધુ ઉપયોગમાં લેવાતા પોલિફિલ્સમાંથી એક, એચ. ટી. એમ. એલ. 5શિવ, આ ભૂલની આસપાસ કામ કરવા માટે આઈ. ઈ. ની અન્ય વિચિત્રતાનો ઉપયોગ કરે છેઃ દરેક નવા એચ. ટી. એમ. એલ. 5 ઘટકો માટે <આઇ. ડી. 1> ("ટેગ્નમ") કૉલ કરવો, જે આઈ. ઈ. ને તેમને યોગ્ય રીતે વિશ્લેષણ કરવા માટેનું કારણ બને છે. તેમાં તે એચ. ટી. એમ. એલ. 5 ઘટકો માટે મૂળભૂત મૂળભૂત શૈલીનો પણ સમાવેશ થાય છે. જો કે મોટાભાગની પોલિફિલ જૂની બ્રાઉઝરને લક્ષ્ય બનાવે છે, તેમ છતાં કેટલાક આધુનિક બ્રાઉઝરને થોડું વધારે આગળ વધારવા માટે અસ્તિત્વ ધરાવે છે. લી વેરોની-ઉપસર્ગ-મુક્ત પોલિફિલ એવી પોલિફિલ છે, જે વર્તમાન બ્રાઉઝર્સને વિકાસકર્તાને તમામ વિક્રેતા ઉપસર્ગો લખવાની જરૂર પડવાને બદલે કેટલાક CSS3 ગુણધર્મોની પૂર્વનિર્ધારિત આવૃત્તિઓને ઓળખવાની મંજૂરી આપે છે. તે પૃષ્ઠની શૈલીપત્રકો વાંચે છે અને કોઈપણ પૂર્વનિર્ધારિત ગુણધર્મોને વર્તમાન બ્રાઉઝર દ્વારા માન્યતા પ્રાપ્ત તેમના પૂર્વનિર્ધારિત સમકક્ષો સાથે બદલે છે. સિલેક્ટીવિઝર કીથ ક્લાર્કનું સિલેક્ટીવિઝર એક લોકપ્રિય પોલીફિલ છે જે ઘણા CSS3 પસંદગીકારોને IE 8 અને તેની નીચે કામ કરવા માટે બનાવે છે. તે સંખ્યાબંધ જાણીતા CSS3 પસંદગીકારોની શોધમાં પૃષ્ઠની શૈલીપત્રકો વાંચે છે, પછી તે પસંદગીકારો સાથે મેળ ખાતા ઘટકો માટે દસ્તાવેજને ક્વેરી કરવા માટે જાવાસ્ક્રિપ્ટ પસંદગીકાર લાઇબ્રેરીનો ઉપયોગ કરે છે, શૈલીઓને સીધા તે ઘટકો પર લાગુ કરે છે. તે jQuery જેવી કેટલીક જાવાસ્ક્રિપ્ટ સિલેક્ટર લાઈબ્રેરીઓને સપોર્ટ કરે છે. ફ્લેક્સી સંભવતઃ સી. એસ. એસ. 3, ફ્લેક્સિબલ બોક્સ લેઆઉટ (એ. કે. એ.) ની સૌથી અપેક્ષિત સુવિધાઓમાંથી એક છે. ફ્લેક્સબોક્સ) ઇન્ટરફેસ ઘટકો મૂકવા માટે એક અત્યંત શક્તિશાળી સાધન બનવાનું વચન આપે છે. વેબકિટ અને મોઝિલા એન્જિનોએ વર્ષોથી પ્રારંભિક ડ્રાફ્ટ વાક્યરચનાને ટેકો આપ્યો છે. ફ્લેક્સી IE અને ઓપેરામાં તે જ વાક્યરચના માટે આધાર લાગુ કરે છે. જો કે, ડ્રાફ્ટ સ્પેકમાં નવા (અને વધુ શક્તિશાળી) વાક્યરચનામાં ભારે સુધારો કરવામાં આવ્યો છે, જે હજુ સુધી ફ્લેક્સી દ્વારા સમર્થિત નથી. ફ્લેક્સીનો ઉપયોગ હજુ પણ જૂના વાક્યરચના સાથે થઈ શકે છે, પરંતુ વિકાસકર્તાએ ખાતરી કરવી જોઈએ કે તેઓ ભવિષ્યના બ્રાઉઝર્સ માટે પણ નવા વાક્યરચનાનો સમાવેશ કરે છે. CSS3 PIE PIE ("પ્રોગ્રેસિવ ઈન્ટરનેટ એક્સપ્લોરર") IE માં કેટલાક સૌથી લોકપ્રિય ગુમ થયેલ CSS3 બોક્સ સુશોભન ગુણધર્મોને અમલમાં મૂકે છે, જેમાં IE 8 અને નીચે માટે બોર્ડર-ત્રિજ્યા અને બોક્સ-શેડો અને IE 9 અને નીચે માટે રેખીય-ઢાળ પૃષ્ઠભૂમિ સામેલ છે. એચટીસી વર્તણૂક (માલિકીનું આઈ. ઈ. લક્ષણ) તરીકે સૂચિત, તે ચોક્કસ ઘટકો પર અસમર્થિત સી. એસ. એસ. 3 ગુણધર્મો જુએ છે અને આઈ. ઈ. 6-8 માટે વી. એમ. એલ. અને આઈ. ઈ. 9 માટે એસ. વી. જી. નો ઉપયોગ કરીને તે ગુણધર્મોને પ્રસ્તુત કરે છે. તેનું રેન્ડરિંગ મોટે ભાગે મૂળ બ્રાઉઝર અમલીકરણથી અલગ નથી અને તે ગતિશીલ ડીઓએમ ફેરફારને સારી રીતે સંભાળે છે. જે. એસ. ઓ. એન. 2 ડગ્લાસ ક્રોકફોર્ડે મૂળ રૂપે તેના (પછીના અને આગામી) જે. એસ. ઓ. એન. ડેટા ફોર્મેટને વાંચવા અને લખવા માટે એક API તરીકે json2.js લખ્યું હતું. તેનો એટલો વ્યાપક ઉપયોગ થયો કે બ્રાઉઝર વિક્રેતાઓએ તેના API ને મૂળ રૂપે અમલમાં મૂકવાનું અને તેને વાસ્તવિક ધોરણમાં ફેરવવાનું નક્કી કર્યું; json2.js હવે જૂના બ્રાઉઝર્સમાં નવા બ્રાઉઝર્સની મૂળ સુવિધાઓનો અમલ કરે છે, તેથી તે લાઇબ્રેરીને બદલે પોલીફિલ બની ગયું છે. ઇ. એસ. 5-શિમ ઇસીએમએસ્ક્રિપ્ટ 5મી આવૃત્તિ ("ઇ. એસ. 5") કેટલીક ઉપયોગી નવી સ્ક્રિપ્ટીંગ સુવિધાઓ લાવે છે, અને કારણ કે તેઓ જૂના જાવાસ્ક્રિપ્ટ એન્જિન સાથે વાક્યરચનાત્મક રીતે સુસંગત છે, તેઓ મોટે ભાગે બિલ્ટ-ઇન જેએસ ઓબ્જેક્ટ્સ પર પદ્ધતિઓને પેચ કરીને પોલીફિલ કરી શકાય છે. આ ઇ. એસ. 5-શિમ પોલીફિલ તેને બે ભાગોમાં કરે છેઃ <આઇ. ડી. 2> એ એવી પદ્ધતિઓ ધરાવે છે જે સંપૂર્ણપણે પોલીફિલ્ડ કરી શકાય છે, અને <આઇ. ડી. 1> એ અન્ય પદ્ધતિઓનું આંશિક અમલીકરણ ધરાવે છે જે ચોક્કસપણે કામ કરવા માટે અંતર્ગત એન્જિન પર ખૂબ આધાર રાખે છે. ફ્લેશકેનવાસ એ એડોબ ફ્લેશ પ્લગ-ઇનનો ઉપયોગ કરીને એચટીએમએલ5 કેનવાસ એપીઆઈનું અમલીકરણ છે. એક દુર્લભ વ્યાપારી પોલિફિલ, તે પેઇડ વર્ઝન તેમજ ફ્રી વર્ઝનમાં આવે છે, જેમાં શેડોઝ જેવી કેટલીક અદ્યતન સુવિધાઓનો અભાવ છે. MediaElement.js જ્હોન ડાયરનું MediaElement.js પોલિફિલ, ફ્લેશ અથવા સિલ્વરલાઇટ પ્લગ-ઇન્સનો ઉપયોગ કરીને જૂના બ્રાઉઝર્સમાં એચટીએમએલ5 મીડિયાએલિમેન્ટ એપીઆઈ સહિત <વિડિયો> અને <ઓડિયો> ઘટકો માટે આધાર આપે છે. તે તે ઘટકો માટે વૈકલ્પિક મીડિયા પ્લેયર UI પણ પ્રદાન કરે છે, જે તમામ બ્રાઉઝર્સમાં સુસંગત છે. મોઝિલા દ્વારા પ્રસ્તાવિત બ્રાઉઝરઆઇડી પ્રમાણીકરણ પ્રોટોકોલ, ટ્રેક્શન મેળવવામાં નિષ્ફળ રહ્યો. વેબશિમ્સ લિબ એલેક્ઝાન્ડર ફારકાસની વેબશિમ્સ લિબ અન્ય ઘણા પોલિફિલને એકસાથે એક જ પેકેજમાં એકત્રિત કરે છે અને શરતી રીતે મુલાકાતી બ્રાઉઝર દ્વારા જરૂરી હોય તે જ લોડ કરે છે. Hyphenopoly.js Hyphenopoly.js જો તે સંબંધિત દસ્તાવેજની ભાષા માટે બ્રાઉઝર દ્વારા પહેલેથી જ સપોર્ટેડ ન હોય તો સ્વચાલિત હાયફેનેશનને સક્ષમ કરે છે. એડેપ્ટર પેટર્ન શિમ (કમ્પ્યુટિંગ) રેપર લાઇબ્રેરી એડેપ્ટિવ વેબ ડિઝાઇન બેકવર્ડ કોમ્પેટિબિલિટી નોટ્સ સંદર્ભો બાહ્ય કડીઓ સુસંગતતા સ્તરો વેબ બ્રાઉઝર રિસ્પોન્સિવ વેબ ડિઝાઇન વેબ ડેવલપમેન્ટ