فهرست مقاله
- 1 ریشه مشکل: این نیست که شما آن را اشتباه نوشتهاید، بلکه این است که زمانه شما را رها کرده است
- 2 چرا اندروید زودتر اقدام کرد؟
- 3 راه حل: آن را در سه ثانیه انجام دهید
- 4 این در واقع یک «تسویه حساب» است
- 5 توسعهدهندگان باید به چه نکاتی توجه کنند؟
- 6 نتیجهگیری: پشت یک خط کد، تکامل فناوری نهفته است.
- 7 خلاصه نهایی
فکر میکردید وبسایت مشکلی ندارد و کد JS آن هم مثل یک سگ پیر پایدار است، اما به محض اینکه نسخه مرورگر موبایل را تغییر دادید، صفحه «دست به اعتصاب زد»؟
عجیبترین چیز این است: کامپیوتر به طور عادی کار میکند،اندرویداما تلفن کاملاً شما را نادیده میگیرد.
این شوخی نیست، این یک مشکل مرورگر است که بیسروصدا اتفاق افتاده است.
ریشه مشکل: این نیست که شما آن را اشتباه نوشتهاید، بلکه این است که زمانه شما را رها کرده است

در واقع، وقتی اکثر توسعهدهندگان این پدیده را میبینند، اولین واکنش آنها این است: آیا اشکالی در سینتکس JS وجود دارد؟ آیا DOM بارگذاری نشده است؟ یا مجوز مسدود شده است؟
نتیجه؟ هیچ کدام از آنها. مقصر واقعی آن نوشته باستانی بود:
<script language="javascript">
این خط کد 20 سال پیش محبوب بودنامحدودکه در تمام آموزشها قابل مشاهده است.
ولی در نسخه کرومیوم ۱۱۹پس از آن، گوگل با این «دستور زبان عتیقه» خداحافظی کرد: تا زمانی که شما ببینید language مرورگر به صورت گزینشی از ویژگیها صرف نظر میکند و حتی زحمت توضیح آنها را هم به خود نمیدهد.
به دلایل سازگاری، کروم روی دسکتاپ هنوز «موقتاً این کار را انجام میدهد»؛ اما کروم روی موبایل اندروید «پیشتاز» است و بلافاصله این استراتژی پاکسازی را فعال کرد.
بنابراین ظاهر شد:کامپیوتر درست کار میکند، اما تلفن همراه کار نمیکندمشکل.
چرا اندروید زودتر اقدام کرد؟
ممکن است برخی افراد بپرسند: چرا کروم اندروید ابتدا منتشر شد؟
خیلی ساده است، چون سرعت ارتقای ترمینال موبایل بیشتر است و گوگل اطلاعات را به سرعت ارسال پاکتهای قرمز ارسال میکند.
在 2023 10 年 月 日 31نسخه اندروید کروم ۱۱۹ به طور کامل از طریق گوگل پلی منتشر شد.
اگرچه نسخه دسکتاپ نیز از هسته کرومیوم استفاده میکند، اما مرسوم است که «دست نگه دارید» تا از انفجار ناگهانی تعداد زیادی از سیستمهای داخلی شرکتها جلوگیری شود.
بنابراین، اگر هنوز از عبارت "language=javascriptدر گوشیهای اندروید، این معادل نوشتن یک کد شفاف است که مرورگر مستقیماً آن را نادیده میگیرد.
راه حل: آن را در سه ثانیه انجام دهید
خوشبختانه، رفع این مشکل فوقالعاده ساده است. فقط این خط را جایگزین کنید:
<script>
یا کمی رسمیتر:
<script type="text/javascript">
اصلاح آن فقط چند ثانیه طول میکشد و کروم اندروید بلافاصله آن را اجرا خواهد کرد.
به یاد داشته باشید، پس از اصلاحبهروزرسانی اجباری حافظه پنهان (کش)در غیر این صورت، مرورگر ممکن است هنوز در حال خواندن فایل قدیمی باشد. روش کار نیز ساده است:
- کامپیوتر: Ctrl + F5
- تلفن: تنظیمات → حریم خصوصی → پاک کردن حافظه پنهان
پس از رفرش، کد در عرض چند ثانیه احیا میشود و صفحه دوباره شروع به اجرا میکند.
این در واقع یک «تسویه حساب» است
در تحلیل نهایی، مشکل این بار خودِ JS نیست، بلکه ...دوران کدهای قدیمی فرانتاند.
کاری که تولیدکنندگان مرورگر باید انجام دهند کاملاً واضح است: به تدریج سینتکسهای قدیمی را پاکسازی کرده و توسعهدهندگان را مجبور به بهروزرسانی کنند.
مثل بزرگراه است: قبلاً اجازه داده میشد سهچرخهها و تراکتورها کنار هم حرکت کنند، اما حالا به دلایل ایمنی باید آنها را از بزرگراه بیرون کرد. language="javascript" آن تراکتور نباید در لاین سرعت میبود.
توسعهدهندگان باید به چه نکاتی توجه کنند؟
این حادثه به عنوان یک یادآوری بسیار واقعبینانه برای ما عمل میکند:
استانداردهای کدنویسی واقعاً مهم هستند کدی که فکر میکنید «درست کار میکند» ممکن است در یک نسخه خاص دیگر کار نکند.
محیط آزمون باید با سرعت همگام باشد فقط در کروم کامپیوترتان کلیک نکنید و منتشر نکنید. باید آن را در دستگاههای تلفن همراه و نسخههای مختلف مرورگرها بررسی کنید.
گزارشهای بهروزرسانی مرورگر را دنبال کنید هر بار که کرومیوم ارتقا مییابد، تعداد زیادی «محرومسازی و حذف» رخ میدهد. اینها تزیین نیستند، اما واقعاً کسب و کار شما را نابود میکنند.
نتیجهگیری: پشت یک خط کد، تکامل فناوری نهفته است.
بسیاری از مردم شکایت دارند که گوگل «غیراخلاقی» است، اما از دیدگاهی بالاتر، این در واقع یک فرآیند اجتنابناپذیر است که کل اکوسیستم وب را به جلو میراند.
حذف ویژگیهای قدیمی و مجبور کردن توسعهدهندگان به پیروی از استانداردها، تکرار تمدن تکنولوژیکی است.
اگر ما همچنان با تمام سینتکسهای قدیمی سازگار باشیم، دیر یا زود بخش فرانتاند به یک ظرف پر از چیزهای درهم و برهم و فرسوده تبدیل خواهد شد.
بنابراین، وقتی این گودال کوچک را تعمیر میکنیم، در واقع در یک «جنبش پاکسازی تمدن تکنولوژیک» شرکت میکنیم.
در چند سال آینده، مشکلات مشابه بیشتر و بیشتری وجود خواهد داشت، و تنها پادزهر ...با زمانه همگام باشید و استانداردها را بپذیرید.
خلاصه نهایی
- کامپیوترها میتوانند آن را اجرا کنند، اما اندروید نمیتواند، زیرا
<script language="javascript">منسوخ شده. - از Chromium 119 کروم اندروید در رد کردن این مورد پیشتاز است
languageویژگی<script>块。 - راه حل این است: استفاده
<script>یا<script type="text/javascript">. - پس از اصلاح، حافظه پنهان را رفرش کنید و مشکل برطرف خواهد شد.
- توسعهدهندگان همیشه باید به بهروزرسانیهای مرورگر توجه داشته باشند و عادت نوشتن کد به شیوهای استاندارد را در خود پرورش دهند.
بنابراین، دفعهی بعد که با یک باگ عجیب مواجه شدید که در آن کامپیوتر به خوبی کار میکند اما تلفن کار نمیکند، بهتر است به این فکر کنید: آیا «یادگاری از قرن گذشته» در کد شما پنهان شده است؟
وبلاگ امید چن ویلیانگ ( https://www.chenweiliang.com/ ) به اشتراک گذاشته شده "چرا کد JS در کروم اندروید با خطا مواجه میشود؟ دلیل عدم اجرا و یک راه حل با یک کلیک فاش شد!"، که ممکن است برای شما مفید باشد.
به اشتراک گذاری لینک این مقاله خوش آمدید:https://www.chenweiliang.com/cwl-33236.html
برای کشف ترفندهای مخفی بیشتر🔑، به کانال تلگرام ما بپیوندید!
اگر دوست داشتید به اشتراک بگذارید و لایک کنید! اشتراک گذاری ها و لایک های شما انگیزه ادامه دار ماست!