موضوع مقاله: اچ‌تی‌ام‌اکس | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # اچ‌تی‌ام‌اکس | مقدمه: این صفات اجازه می‌دهند که تعریف پویا یک صفحه وب مستقیماً در اچ‌تی‌ام‌ال و سی‌اس‌اس انجام شود، بدون نیاز به نوشتن کد جاوااسکریپت اضافی. | ## بخش 1: اچ‌تی‌ام‌اکس | این قابلیت‌ها انجام وظایفی را که نیازمند نوشتن کد جاوااسکریپت بودند، به طور کامل از طریق اچ‌تی‌ام‌ال ممکن می‌سازند. این کتابخانه از ارتباط با سرور با استفاده از روش‌های استاندارد اچ‌تی‌ام‌ال پشتیبانی می‌کند و فرآیند درج پاسخ‌های سرور (معمولاً به صورت متن یا قطعات اچ‌تی‌ام‌ال) در بخش‌های مشخصی از صفحه وب را بدون نیاز به بازسازی کامل صفحه ساده می‌سازد. این کتابخانه با هدف کاهش پیچیدگی‌های مرتبط با استفاده از ایجکس (جاوااسکریپت و اکس‌ام‌ال غیرهمزمان) توسعه یافت و از یک رویکرد ساده‌شده با استفاده از صفات اچ‌تی‌ام‌ال بهره می‌برد. هدف اصلی این پروژه ایجاد چارچوبی بود که با هدف اولیه روی فیلدینگ از رست و به طور خاص HATEOAS (ابررسانه به عنوان موتور حالت برنامه کاربردی) هماهنگ باشد. این مسئله در پست وبلاگ فیلدینگ با عنوان «ای‌پی‌آی‌های رست باید مبتنی بر فرامتن باشند» در اکتبر ۲۰۰۸ توضیح داده شده است. این نسخه نقطه عطفی مهم برای پروژه بود، زیرا امکان استفاده از ایجکس، انتقال‌های سی‌اس‌اس، وب‌سوکت‌ها، و رویدادهای ارسال‌شده از سرور را مستقیماً در اچ‌تی‌ام‌ال با استفاده از صفات فراهم کرد. | ## بخش 2: اچ‌تی‌ام‌اکس | این برنامه به پروژه‌های متن‌باز کمک مالی و راهنمایی از سوی اعضای پروژه‌های متن‌باز پیشرفته ارائه می‌دهد. طراحی و عملکرد اچ‌تی‌ام‌اکس ترکیبی از قابلیت‌های فریم‌ورک‌های مدرن و پردازش سمت سرور برنامه‌های وب سنتی را ارائه می‌دهد. فلسفه طراحی این کتابخانه بر هدف «تکمیل اچ‌تی‌ام‌ال به عنوان یک ابرمتن» استوار است. با استفاده از اتریبیوت اچ‌تی‌ام‌ال سفارشی با پیشوند hx- برای ارسال درخواست‌های ایجکس و به‌روزرسانی بخش‌هایی از دام، اچ‌تی‌ام‌اکس به توسعه‌دهندگان امکان می‌دهد رفتارهای پویا را مستقیماً در نشانه‌گذاری خود تعریف کنند، که این امر نیاز به کدنویسی گسترده جاوااسکریپت را کاهش داده یا حتی حذف می‌کند. این روش روشی دسترس‌پذیرتر و شهودی‌تر برای ساخت رابط‌های کاربری مدرن ارائه می‌دهد، در حالی که از پیچیدگی‌هایی که معمولاً با فریم‌ورک‌های سنتی جاوااسکریپت همراه است، اجتناب می‌کند. از آنجا که اچ‌تی‌ام‌اکس می‌تواند بخش‌های خاصی از یک صفحه وب را بدون نیاز به بارگذاری مجدد کل صفحه به‌روزرسانی کند (مانند آنچه در اچ‌تی‌ام‌ال و سی‌اس‌اس ساده اتفاق می‌افتد)، استفاده از آن ممکن است تجربه کاربری و عملکرد را بهبود دهد، زیرا تنها بخشی از داده‌ها نیاز به دریافت مجدد از سرور دارند. | ## بخش 3: اچ‌تی‌ام‌اکس | این کتابخانه رویکرد رایج استفاده از جی‌سان به‌عنوان قالب استاندارد بارگذاری برای درخواست‌های اچ‌تی‌تی‌پی را به چالش می‌کشد و آن را با اچ‌تی‌ام‌ال جایگزین می‌کند. این تغییر به منظور حل مشکلات مربوط به عملکرد و بار شناختی ناشی از سریال‌سازی و دی‌سریال‌سازی جی‌سان و استفاده از آن در رابط کاربری انجام شده است. مشکلاتی مانند ناتوانی جاوااسکریپت و جی‌سان در پردازش صحیح اعداد بزرگ‌تر از ۲۵۳، یا تمایز بین اعداد اعشاری و صحیح، و پیچیدگی استفاده از جایگزین‌هایی مانند گرف‌کیوال یا gRPC نیز از این جمله هستند. یکی از مزایای بالقوه اچ‌تی‌ام‌اکس و رویکرد مبتنی بر هایپرمتن این است که داده‌های بازیابی‌شده مستقیماً از پایگاه داده نیازی به تبدیل به قالب جی‌سان یا فرمت‌های سازگار با جی‌سان (مانند انواع جی‌سان در پستگرس‌کیوال) ندارند و نیازی نیست ابتدا در سمت سرور سریال‌سازی و سپس در سمت کاربر دی‌سریال‌سازی شوند. کاهش محاسبات در سمت کاربر همچنین باعث می‌شود تمرکز توسعه‌دهندگان به سمت سمت سرور معطوف شود، که می‌تواند منجر به بهبود عملکرد سمت کاربر شود. | ## جمع‌بندی | البته این کار ممکن است هزینه بار بیشتر روی سرور را به همراه داشته باشد، اما به توسعه‌دهندگان روشی ساده‌تر برای حل مسائلی ارائه می‌دهد که در غیر این صورت با جاوااسکریپت سمت کاربر و در زبان‌های برنامه‌نویسی مختلف حل می‌شدند.