பிரவுசரில் லோக்கல் கோப்பு செயலாக்கம் எப்படி வேலை செய்கிறது
எதுவும் பதிவேற்றப்படவில்லை என்றால், உண்மையில் வேலையைச் செய்வது எது — எங்கே?
இங்கே "லோக்கல்" என்பதன் பொருள்
வழக்கமான ஆன்லைன் மாற்றி என்பது ஒரு பதிவேற்ற முனையம் கொண்ட வலைத்தளம். உங்கள் கோப்பு, உங்கள் கட்டுப்பாட்டில் இல்லாத ஒரு இயந்திரத்திற்கு அனுப்பப்பட்டு, அங்கே செயலாக்கப்பட்டு, சில காலம் சேமிக்கப்பட்டு, பதிவிறக்கமாகத் திரும்பத் தரப்படுகிறது. லோக்கல் செயலாக்கம் அந்த வாக்கியத்தின் நடுப்பகுதியை நீக்குகிறது: உங்கள் கோப்பைப் படிக்கும் நிரல், நீங்கள் ஏற்கெனவே திறந்து வைத்திருக்கும் பிரவுசர் டேபுக்குள், உங்கள் சொந்த ப்ராசசரில் இயங்குகிறது; முடிவு உங்கள் சொந்த வட்டுக்கே திரும்ப எழுதப்படுகிறது.
தளம் இன்னும் நெட்வொர்க் வழியாகவே பெறப்படுகிறது — HTML, ஸ்டைல்ஷீட்கள், ஸ்கிரிப்ட்கள், WebAssembly தொகுதிகள் அனைத்தும் எந்த வலைப்பக்கத்தையும் போலவே ஒரு சர்வரிலிருந்து வருகின்றன. வேறுபாடு திசையில் இருக்கிறது. நிரல் கீழே வருகிறது; உங்கள் கோப்பு மேலே போவதில்லை.
பிரவுசரிலேயே தேவையான பாகங்கள் இருக்கின்றன
| வசதி | அது தருவது என்ன |
|---|---|
| File மற்றும் Blob API கள் | படிவம் சமர்ப்பிக்காமலேயே, பயனர் தேர்ந்தெடுத்த அல்லது இழுத்துப் போட்ட கோப்பின் பைட்டுகளைப் படிக்க |
| Web Workers | இடைமுகம் செயல்பட்டுக்கொண்டே இருக்க, கனமான வேலையை ஒரு பின்புலப் பிரிவில் இயக்க |
| WebAssembly | தொகுக்கப்பட்ட C, C++ அல்லது Rust கோடெக் லைப்ரரிகளை நேட்டிவ் வேகத்திற்கு அருகில் இயக்க |
| Canvas மற்றும் OffscreenCanvas | படங்களை டிகோட் செய்ய, வரைய, மறுஅளவாக்க, மீண்டும் என்கோட் செய்ய |
| WebCodecs | பிரவுசரின் சொந்த வன்பொருள் முடுக்கப்பட்ட வீடியோ என்கோடர்களையும் டிகோடர்களையும் அணுக |
| WebGPU | மாதிரி அனுமானத்தையும் இணைநிலைப் பிக்சல் வேலையையும் கிராஃபிக்ஸ் ப்ராசசரில் இயக்க |
| File System Access | ஆதரவு இருக்கும் இடங்களில், பயனர் தேர்ந்தெடுக்கும் இடத்திற்கே முடிவை நேரடியாக எழுத |
இதில் எதுவும் அபூர்வமானது அல்ல. விரிதாள்களையும் வடிவமைப்புக் கருவிகளையும் விளையாட்டுகளையும் ஒரு டேபில் இயக்கும் அதே இயங்குதளம்தான் இது. வழக்கத்துக்கு மாறான ஒரே முடிவு, அதனுடன் ஒரு சர்வரைச் சேர்க்க மறுப்பதுதான்.
ஒரு கோப்பு கடக்கும் பாதை
- நீங்கள் ஒரு கோப்பைத் தேர்ந்தெடுக்கிறீர்கள். பிரவுசர் அந்தப் பக்கத்திடம் அதற்கான ஒரு கைப்பிடியைத் தருகிறது — நகல் அல்ல, ஒரு குறிப்பு.
- நீட்சியை நம்பாமல், கோப்பின் கையொப்பத்திலிருந்து அதன் உண்மையான வகையை அறிய பக்கம் முதல் சில பைட்டுகளைப் படிக்கிறது.
- அந்த வேலைக்கு எவ்வளவு நினைவகம் தேவை என்று மதிப்பிடுகிறது; சாதனம் பாதுகாப்பாகத் தர முடிவதை அது தாண்டினால், வேலையை மறுக்கிறது அல்லது வரிசையில் நிறுத்துகிறது.
- பைட்டுகள் ஒரு Web Worker க்கு மாற்றப்படுகின்றன. ArrayBuffer ஐ மாற்றுவது நகலெடுப்பதற்குப் பதிலாக உரிமையையே மாற்றுகிறது; எனவே ஒரு பெரிய கோப்பு நினைவகத்தில் இரண்டு முறை இருப்பதில்லை.
- வொர்க்கருக்குள், ஒரு WebAssembly கோடெக் அல்லது ஒரு இயங்குதள API உண்மையான டிகோடிங்கையும் என்கோடிங்கையும் செய்கிறது.
- முடிவு பைட்டுகளாகத் திரும்பி வந்து, ஒரு Blob ஆக மூடப்பட்டு, பதிவிறக்கமாக உங்களுக்குத் தரப்படுகிறது அல்லது நீங்கள் தேர்ந்தெடுக்கும் இடத்தில் எழுதப்படுகிறது.
- அந்த Blob க்கான தற்காலிக URL ரத்து செய்யப்படுகிறது, பஃபர்கள் விடுவிக்கப்படுகின்றன.
WebAssembly தான் நிலைமையை மாற்றிய பகுதி
பட மற்றும் வீடியோ கோடெக்குகள் பல பத்தாண்டுகளாகக் கவனமாக மேம்படுத்தப்பட்ட C நிரல்கள். அவற்றை JavaScript இல் மீண்டும் எழுதுவது ஒருபோதும் நடைமுறைச் சாத்தியமாக இருந்ததில்லை. WebAssembly என்பது ஒரு கடத்தக்கூடிய இருமக் கட்டளை ஃபார்மட்; பிரவுசர்கள் அதை ஒரு சாண்ட்பாக்ஸுக்குள், நேட்டிவ் நிரலுக்கு அருகிலான வேகத்தில் இயக்குகின்றன. அதாவது, ஏற்கெனவே இருக்கும் அந்த லைப்ரரிகளை அப்படியே தொகுத்துப் பிரவுசருக்கு அனுப்ப முடியும்.
வேகம் எவ்வளவு முக்கியமோ அவ்வளவு முக்கியம் சாண்ட்பாக்ஸும். ஒரு WebAssembly தொகுதிக்கு உங்கள் கோப்பு முறைமையையோ, நெட்வொர்க்கையோ, உங்கள் மற்ற டேபுகளையோ தானாக அணுகும் உரிமை இல்லை. பக்கம் அதற்குத் தரும் நினைவகத்தை மட்டுமே அது காண்கிறது, வேறு எதையும் அல்ல. தீங்கிழைக்கும், அல்லது வெறுமனே பிழையுள்ள ஒரு கோடெக்கால், தனக்குத் தரப்படாத ஒன்றை அலைந்து சென்று படிக்க முடியாது.
இன்னும் நெட்வொர்க்கைத் தொடுவது எது, அது ஏன் உங்கள் கோப்பு அல்ல
நெட்வொர்க் வழியாக மூன்று விஷயங்கள் வருகின்றன: பக்கமே, நீங்கள் திறந்த கருவிக்கான என்ஜின், மற்றும் — பின்னணி நீக்கத்திற்கு — மாதிரியின் எடைகள். மூன்றுமே FileSlimmer இன் சொந்த நிலையான ஆதாரங்கள்; உங்கள் பைட்டுகளில் எதுவும் படிக்கப்படுவதற்கு முன்பே FileSlimmer இன் சொந்த ஆரிஜினிலிருந்து பெறப்படுகின்றன. அவை பதிவிறக்கங்கள், அவை தேக்ககத்தில் வைக்கக்கூடியவை; முதல் பயன்பாட்டுக்குப் பிறகு நெட்வொர்க்கே இல்லாமல் பிரவுசரின் சொந்தத் தேக்ககத்திலிருந்தே அவற்றை வழங்க முடியும்.
அந்தப் புள்ளிக்குப் பிறகு அனைத்தும் லோக்கல். என்ஜின்கள் கோப்பு பைட்டுகளைப் பக்கத்திலிருந்து postMessage வழியாக மட்டுமே பெறுகின்றன; எதையும் அனுப்புவதற்கான URL அவற்றுக்கு ஒருபோதும் தரப்படுவதில்லை; ஏதோ ஒரு நிரல் முயன்றாலும், பக்கம் எங்கே இணைக்க முடியும் என்பதை ஒரு உள்ளடக்கப் பாதுகாப்புக் கொள்கை கட்டுப்படுத்துகிறது.
சமரசங்கள், நேரடியாகச் சொன்னால்
| பரிசீலனை | உங்கள் பிரவுசரில் | ஒரு சர்வரில் |
|---|---|---|
| உங்கள் கோப்பு எங்கே செல்கிறது | எங்கும் இல்லை | உங்கள் கட்டுப்பாட்டில் இல்லாத ஒரு இயந்திரத்திற்கு |
| வேகம் | உங்கள் சாதனத்தால் முடிந்த அளவு | இயக்குபவர் எவ்வளவு செலவழித்தாரோ அவ்வளவு |
| மிகப் பெரிய கோப்புகள் | பிரவுசர் நினைவகத்தால் வரையறுக்கப்படுகிறது | இயக்குபவரின் வரம்புகளால் வரையறுக்கப்படுகிறது |
| ஆஃப்லைனில் வேலை செய்யுமா | என்ஜின் தேக்ககத்தில் வந்ததும், ஆம் | இல்லை |
| அபூர்வ ஃபார்மட்கள் | WebAssembly ஆகத் தொகுக்கக்கூடியவை மட்டும் | இயக்குபவர் நிறுவும் எதுவும் |
| ஆயிரம் கோப்புகள் கொண்ட தொகுதி | சாதனத்தால் கட்டுப்படுத்தப்படுகிறது | பொதுவாக இதற்கு மிகவும் ஏற்றது |
லோக்கல் செயலாக்கம் எல்லா இடங்களிலும் சிறந்தது அல்ல. கோப்பு தனிப்பட்டதாக இருக்கும்போது, சாதனம் திறன் கொண்டதாக இருக்கும்போது, வேலை நினைவகத்திற்குள் அடங்கும்போது அது சிறந்தது. ஒரே இயந்திரம் தாங்கக்கூடியதை விட மிக அதிகமாகச் செயலாக்க வேண்டியிருக்கும்போது சர்வர் சிறந்தது. ஒரு அணுகுமுறை எல்லா இடங்களிலும் வெல்கிறது என்று பிடிவாதம் பிடிப்பதை விட, நீங்கள் எந்தச் சூழலில் இருக்கிறீர்கள் என்பதைத் தெளிவாக அறிவது பயனுள்ளது.
இது எதைக் கூறவில்லை
இது இந்த செயலி என்ன செய்கிறது என்பது பற்றிய அறிக்கை. நீங்கள் திறக்கும் எந்தப் பக்கத்தின் உள்ளடக்கத்தையும் படிக்கக்கூடிய உங்கள் பிரவுசர் நீட்சிகள் பற்றிய கூற்று அல்ல; நீங்கள் தொடும் எந்தக் கோப்பையும் ஆய்வு செய்யக்கூடிய உங்கள் இயங்குதளம் பற்றியதும் அல்ல; நீங்கள் ஒரு தளத்தைப் பார்வையிட்டதைக் காணக்கூடிய உங்கள் நெட்வொர்க் இயக்குநர் பற்றியதும் அல்ல. அவை எந்த வலைத்தளத்தின் எல்லைக்கும் அப்பாற்பட்டவை; வேறுவிதமாகச் சொல்லும் கருவி தன் தகுதியை மிகைப்படுத்துகிறது.
கூற்று குறுகியது, சரிபார்க்கக்கூடியது: நீங்கள் தேர்ந்தெடுத்த கோப்புகள் இந்த பிரவுசரிலேயே லோக்கலாகச் செயலாக்கப்படுகின்றன, FileSlimmer அவற்றைப் பதிவேற்றுவதில்லை. அதை நம்புவதற்குப் பதிலாக நீங்களே எப்படிச் சரிபார்ப்பது என்பதை அடுத்த வழிகாட்டி விளக்குகிறது.
இதற்கான கருவிகள்
ஆதாரங்கள்
- W3C — File API
- W3C — WebAssembly Core Specification
- WHATWG — HTML Standard, Web Workers
- W3C — WebCodecs