ខ្លីៗ: គ្មាន “ថ្ងៃផុតកំណត់” សម្រាប់កូដ HTML/CSS/JS ដោយខ្លួនវាទេ—វានឹងនៅដំណើរការទាល់តែមានអ្វីមួយខាងក្រៅផ្លាស់ប្តូរ។ អ្វីដែលអាចបណ្ដាលឲ្យ “ផុតសុពលភាពដោយអន្តរជាតិ” ឬខូចក្រោយមក គឺ៖
- CDN ប្ដូរ/ផ្អាក
- ឧ. Tailwind, html2canvas, Google Fonts… ប្រសិនបើអ្នកប្រើ URL មិនចាក់កំណែ (latest) ឬ CDN នោះផ្អាក ស្គ្រីបអាចមិនឡោត។
ដោះស្រាយ: ចាក់កំណែជាក់លាក់ (pinned versions) ឧ.
https://cdn.tailwindcss.com?plugins=forms ➜ ជំនួសជាវ៉ាន់សិនឆាប់ចាស់/ស្ថិតស្ថេរ ឬ build CSS ផ្ទាល់ខ្លួន។
- ការផ្លាស់ប្តូរ Browser/ស្តង់ដារ
- APIs ខ្លះត្រូវបានដកចេញ ឬតម្រូវ HTTPS/Permission ថ្មី។
ដោះស្រាយ: ប្រើ API ស្តង់ដារ, ជៀស document.execCommand ចាស់ៗ, និងសាកល្បងលើ Chrome/Edge/Safari/iOS ជាញឹកញាប់។
- បម្លាស់ប្តូរ Blogger Template/Policy
- DOM selector ឬ CSS variable ក្នុង theme អាចប្ដូរ → កូដ JS ដែល “ចាប់” តាម class/id ពិសេសអាចខូច។
ដោះស្រាយ: កុំអាស្រ័យលើ selector រឹងពេក; វេចខ្លួន UI ក្នុង <div id="my-widget"> របស់អ្នកឯង; ប្រើ style inline tokens (--main-color, font: inherit) ដោយជាប់ខ្លួន។
- Mixed content / HTTPS
- រូបភាព ឬ script HTTP ក្នុងទំព័រ HTTPS នឹងត្រូវទប់។
ដោះស្រាយ: ប្រើ HTTPS សុទ្ធ ឬ path ស្ថាបនាបណ្ដាញដែលទុកនៅ Blogger/Drive (ដែល serve https)។
- Quota/Key/Third-party APIs
- ប្រសិនបើមានប្រើសេវាខាងក្រៅដែលត្រូវ API key/Quota (មិនសូវឃើញក្នុងកូដអ្នក តែកម្មង់កណ្តាលខ្លះប្រើ), វាអាចដាច់។
ដោះស្រាយ: ជៀសការពឹងផ្អែកលើ API មិនចាំបាច់; ប្រសិនបើចាំបាច់ ស្តុក fallback message។
- Feature detection មិនមាន
- កូដមួយចំនួនសន្មត់ថា browser គាំទ្រគ្រប់អ្វី (Intl, Clipboard, OffscreenCanvas…)។
ដោះស្រាយ: ប្រើ feature detection ហើយផ្ដល់ fallback (ឧ. កូបិ៍ទៅ clipboard បើមិនមាន navigator.clipboard ត្រឡប់ទៅ input.select()+execCommand('copy') ជា fallback)។
what I recommend (ឈ្មោះ “រឹងមាំកូដ” checklist)
- Pin versions: ប្ដូរ CDN ទាំងអស់ឲ្យមានលេខកំណែជាក់លាក់ (ឧ. html2canvas 1.4.1), ឬ self-host file នៅក្នុង Blogger (upload ទៅ Google Drive/Static hosting แล้วយោង HTTPS)។
- Bundle CSS ដោយខ្លួន: សម្រាប់ Tailwind, build CSS មួយឯកសារ (production build) ហើយភ្ជាប់ <link> ទៅឯកសារនោះ (ជៀសពឹង cdn.tailwindcss.com)។
- Namespace CSS/JS: ដាក់គ្រឿងនៅក្នុង container id ឯង (#sarim-tool{ ... }) ដើម្បីជៀសប៉ះពាល់ពី theme។
- Fallback UI: បើ script មិនឡោត បង្ហាញ <noscript> ឬ div ដែលប្រាប់អ្នកប្រើឲ្យ Refresh/សាកល្បង browser ផ្សេង។
- Test Matrix: សាកល្បង Chrome/Edge/Safari + iPhone/iPad (iOS
Safari) ជាញឹកញាប់—ពិសេសឧបករណ៍ iPhone របស់អ្នក។
- គ្រប់គ្រង Font: ប្រើ font: inherit; និង rem/em (ដូចដែលអ្នកកំណត់ក្នុង memory) ដើម្បីឲ្យសមនឹង Font-size Controller នៅលើ blog របស់អ្នក។
- Export/Import local: កម្មវិធីគណនា—រក្សាទុកទិន្នន័យជា JSON នៅ localStorage ហើយផ្ដល់ប៊ូតុង Export/Import (អ្នកធ្វើរួចជាច្រើន—បន្តទំរង់ដូចគ្នា)។
- កុំប្រើ API ចាស់ៗ: ជំនួស execCommand('copy') ដោយ Clipboard
API + fallback; ជៀស synchronous
XHR; ប្រើ addEventListener ជានិច្ច។
សារសំខាន់
- HTML/CSS/JS មូលដ្ឋាន “មិនផុតកំណត់” បើយើងខ្ទាស់កំណែ និងកាត់បន្ថយការពឹងផ្អែកខាងក្រៅ។
- កូដដែលខ្ញុំបានស្នើឲ្យអ្នកធ្វើពេលកន្លងមក (calculator/template) នឹងនៅរឹងមាំ ប្រសិនបើអ្នកធ្វើតាម៖ pin versions, self-host ឯកសារសំខាន់ៗ, និង test ជាប្រចាំ។
បើអ្នកចង់ ខ្ញុំអាច ស្វែងរក/ពិនិត្យកូដណាមួយជាក់លាក់ (ឧ. Column Rebar, Brick Calculator, Do-List) ហើយបម្លែងជាកំណែ self-host + pinned + fallback-ready សម្រាប់ប្លុករបស់អ្នក—នឹងផ្តល់កំណែ “drop-in” ដែលអាច paste ចូល Blogger បានភ្លាម។
Tags:
Blog