مفهوم زبان نشانه گذاری یا Markup Language

میدونید که html مخفف hyper text markup language در این مقاله میخوام در مورد  زبان نشانه گذاری صحبت کنم و بفهمیم که زبان نشانه گذاری واقعا چی هست ؟

تعریف  ساده و  کلی در مورد زبان نشانه گذاری :

زبانی که با اضافه کردن نشانه هایی به یک سند باعث تمایز بین یک متن ساده میشه . و این نشانه ها  در رایانه یا مرورگر باعث درک بهتر از مفهوم ، نشانه هایی که ما تولید کردیم خواهد شد  و همین  کار باعث عملکرد بهتر پردازش  و نمایش اجزا میشه.

 

اما زبان نشانه گذاری که اون  رو تعریف کردیم در مرورگر به چه صورت عمل میکند ، اگر  شما  با html کدنویسی کرده باشید تمام عناصر طبق یک ساختار داخل تگ های متفاوتی هستند و مرورگر وب طبق تگ ها ، که به عنوان نشانه هایی برای شناسایی اجزای یک سند html کدنویسی شده ،  این تگ ها را به صورت قابل فهم برای خودش پردازش کرده و ما چیزی که مشاهده میکنیم فقط محتوایی هست که  انتظار نمایش اون رو  داریم.

مثالی در این مورد :

ما یک تگ h1 در سند اچ تی ام الیمون قرار میدیم که داخل آن عنوان زیر هست :

<h1>یک متن مورد نظر<h1>

و بعد از اینکه ما سند اچ تی ام الیمونو با یک  مرورگر باز کردیم چیزی که برای ما نمایش داده میشه فقط متن “یک متن مورد نظر ” هستش  و نشانه ای که باعث شد مرورگر متوجه این ساختار بشه تگ h1 بود . و اینکه فرمت سند ما html هست که در نتیجه خروجی مورد نظر ما نمایش داده میشه .

و نکته و مورد آخر اینکه اگه ما یک تگ پاراگراف <p> همه اضافه کنیم به این سند مرورگر این دو تگ رو متفاوت از هم در نظر میگیره و منحصر بفرد هستش هر تگ در html.

عروس بوت استرپ ، سیستم آرگون (۲۰۱۸)

 

اگه با bootstrap کار کرده باشید متوجه میشید که این فریم ورک چقدر زیاد بهتون کمک میکنه در طراحی هاتون .
اما بعضی موقع ها برای تست کردن کدهای php یا جاوااسکریپت بهتره از این فریم ورک استفاده کنید تا وقتی از شما گرفته نشه برای استایل دهی به ساختار های مورد نیازتون ، مثلا شما میخواید یک فرم ثبت نام برای تست ایجاد کنید و بعد از تست این ساختار ، اون رو روی پروژه اصلیتون پیاده کنید ، اما پیشنهادی که من به شما میکنم اینه که برای تست کردن هم از فریم ورک بوت استرپ استفاده کنید . تا هم کلاس های بوت رو به خاطر بسپارید و همین اینکه بستر تست کدهاتون با واقعیت طراحی نهایتون کمی نزدیک باشه .
اما این  مورد  چه ربطی داشت به argon یا آرگون ، این سیستم همین بوت استرپه فقط با استایل های خوشگل تر .
مثلا   چند نمونه از کامپوننت های جالب با استایل زیبا  :

 

فرم ها :

 

 

 modal ها :

 

 

navbar ها :

 

 

این اشتباه رو نکنید که argon یه فریم ورک مستقله، بلکه یک ساختار شخصی شده از نظر استایل دهی هستش یا بهتر بگم اختصاصی برای کامپوننت ها و موارد دیگه که جز ضروریات طراحی رابط کاربری .

یه مورد دیگه که استایلش جالبه برای Pagination ها هستش:

 

 

نکته جالب اینکه این استایل ها فوق العاده کاربر پسنده و همچنین متن بازه سیستم آرگون .

اما این سیستم از چه فریم ورک ها یا کتابخونه هایی استفاده میکنه :

[list_group]

Bootstrap 4

jQuery

noUISlider

Open Sans Font

Stripe Elements

Popper.js

WebGradients

[/list_group]

[text_title]راهنمای نصب :[/text_title]

اما اینکه نصب این سیستم به چه صورته :

کافی به قسمت دانلود سایت برید و فایل سیستم آرگون رو از گیت هاب دانلود کنید .

فایل های css مورد نیاز و قرار دادن اون در تگ head

 

<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" rel="stylesheet">

<!-- Icons -->
<link href="/assets/vendor/nucleo/css/nucleo.css" rel="stylesheet">
<link href="/assets/vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet">

<!-- Theme CSS -->
<link type="text/css" href="/assets/css/argon.min.css" rel="stylesheet">

 

فایل nucleo.css و argon.min.css در اسکریپتی که از خود سایت آرگون دانلود کردید قرار دارد .وهمین طور فایل argon.min.js

و بعد قرار دادن فایل های js :

 

<!-- Core -->
<script src="/assets/vendor/jquery/jquery.min.js"></script>
<script src="/assets/vendor/popper/popper.min.js"></script>
<script src="/assets/vendor/bootstrap/bootstrap.min.js"></script>

<!-- Theme JS -->
<script src="/assets/js/argon.min.js"></script>

 

[text_tip]نکته : شما فایل bootstrap.css رو قرار ندادید داخل تگ head اما با این وجود این سیستم یعنی سیستم آرگون از بوت استرپ هم پشتیبانی میکنه و داخل فایل سی اس اسی که اشاره کردیم کدهای مربوط به بوت استرپ هم وجود داره و شما با خیال راحت همه مواردی که با بوت استرپ انجام می دادید رو در این سیستم هم پیاده کنید .[/text_tip]

فقط تفاوتش استایل هایی هست که به کامپوننت ها داده شده در مقایسه با بوت استرپ.

لینک : وب سایت آرگون 

طراحی قالب استاندارد وردپرس

همیشه بزرگترین مشکل دارندگان و طراحی سایت وردپرس داشتن یک قالب حرفه ای, سبک و راحت بوده است . برخی فکر میکنند قالب های وردپرس زمانی که درست نشان داده شوند استاندارد هستند و کدنویسی آنها زیاد مهم نیست . اما این طرز فکر کاملا غلط است . در طرف دیگر شاید فکر کنید سرعت لود PHP بالاست و شما هر چقدر کدهای PHP قالبتان سنگین باشد تفاوتی ایجاد نمیکند , اما واقعا اینطور نیست , مطلبی که یک طراح باید در نظر بگیرید باید خروجی کد ها باشد و صرفا مهم نیست شما چند خط کد PHP داشته باشید .

پس با من همراه باشید تا نکاتی رو که مهم هست نسبتا برای طراحی یک قالب استاندارد ودرپرس باهم بررسی کنیم.

بررسی Header – از بین بردن فایل های اضافی قالب

یک قالب وردپرس کامل و تمیز از Header آن شروع به کار میکند . افزونه ای زیادی مانند Head CleanUp هستند که به شما کمک میکنند برخی از خروجی های غیر ضروری در قالب کمتر باشد .

نکته اصلی در قالب وردپرس کم بودن فایل های الحاقی JS و CSS است که افزونه های تولید می کنند و با توجه به سرعت لود اینترنت کاربران ایران و آشنایی کمتر ما ایرانیان نسبت به بقیه مردم به صفحات شلوغ . برای رفع مشکل سنگینی سایت شما دو راه دارید

اولین کار استفاده صحیح و بهینه از JS و CSS هاست . یعنی شما به صورت دستی آنها را ویرایش و کم حجم تر کنید اما بعضی وقت ها شما اصلا نیازی به لود این فایل ها در قالب وردپرس خود ندارید شما به اصطلاح باید آنها را dequeue کنید که مزاحم کار شما نباشند .

 

function wpdocs_dequeue_script() {
 wp_dequeue_script( 'jquery-ui-core' );
}
add_action( 'wp_print_scripts', 'wpdocs_dequeue_script', 100 );

 

در این حالت شما افزونه jquery-ui-core را غیر فعال میکنید . کافیست در مقابل تابع wp_dequeue_Script نام کتابخانه مورد نظر خود را بنویسید . حتی خیلی وقت ها شما در حالیکه نیاز به jquery در قالب خود ندارید افزونه ها به صورت اتوماتیک این کتابخانه را لود میکنند که شما میتوانید آنها را از بین ببرید

بررسی Header کامل و تمیز – لود کردن فایل ها در محل مورد نیاز

یکی از مهم کار ها این است که افزونه در جایی که نیاز است استفاده شود . برای درک این موضوع شما افزونه محبوب Contact Form 7 را برای وردپرس در نظر بگیرید. این افزونه برای لود کردن فروم مورد نظر خود ۲ فایل CSS و یک فایل JS لود می کند که شما اگر آنها را Dequeue کنید دیگر فرمی برای شما نمایش داده نمی شود و این افزونه برای شما از کار می افتد .

فرض کنید شما در صفحه اصلی وردپرس خود فرمی ندارید و فقط این فرم در برخی از صفحه شما ( مثلا تماس با ما ) ایجاد شده است . پس شما باید فقط این فایل ها را در آن صفحه لود کنید . حال این کار چه جوری است ؟

هر افزونه یک فایلی دارد که شبیه کد بالا که برای Dequeue بود یک سری فایل را Enqueue می کند . یعنی یک سری فایل الحاقی به قالب وردپرس شما اضافه می کند تا بتواند کار خود را انجام دهد . در همین افزونه Contact form 7 یک فایل به نام functions.php وجود دارد و در خط ۱۱۰ آن ما کد زیر را داریم:

 

function wpcf7_load_js() {
  return apply_filters( 'wpcf7_load_js', WPCF7_LOAD_JS );
}
function wpcf7_load_css() {
  return apply_filters( 'wpcf7_load_css', WPCF7_LOAD_CSS );
}

 

این دو تابع برای شما فایل های مورد نیاز افزونه را تولید می کند در تمامی صفحات . اما شما با استفاده از is_page() می توانید آن ها را فیلتر کنید که فقط در برگه ها نشان داده شود .

یعنی شما کد زیر را قرار دهید دیگر در صفحه اصلی و سایر صفحات فایل های اضافی این افزونه را نخواهید داشت که از چند جهت سرعت لود کلی قالب وردپرس شما را افزایش می دهد.

 

function wpcf7_load_js() {
if( is_page() ) {
  return apply_filters( 'wpcf7_load_js', WPCF7_LOAD_JS );
}
 }
function wpcf7_load_css() {
if( is_page() ) {
  return apply_filters( 'wpcf7_load_css', WPCF7_LOAD_CSS );
}
}

 

همانطور که می دانید یکی از مهم ترین عوامل در سرعت لود یک سایت داشتن فایل های جی کوئری سبک به تعداد کم است که به تعداد بالا هم استفاده نشده باشند. با این کار شما تا حد زیادی می توانید در جا های درست و به جا از JS و CSS خود استفاده کنید.

از بین بردن برخی اضافات وردپرس

همانطور که میدانید wp_head در داخل فایل اطلاعات زیادی در قالب شما به صورت meta قرار میدهد . مثلا یکی از آنها نسخه وردپرس اجرایی است که مشکلاتی به وجود می تواند بیاورد در افزونه head clean up شما می توانید آنرا حذف کنید و بحث دیگر کد های wp_emoji هستند که آنها را وردپرس به صورت پیشفرض لود می کند که در افزونه cleanup نیز آنها را می توانید پاک کنید .

برای از بین بردن این کد ها می توانید به صورت دستی نیز این کد را در فایل functions.php خود قرار دهید . این کار به صورت اتوماتیک این افزونه و این کد های اضافی را برای شما پاک می کند .

 

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

 

معرفی Ajax

در این مقاله معرفی داشته باشیم در مورد ajax و توضیحات کاربردی در رابطه با ای جکس خدمت شما عرض کنم پس با من همراه باشید تا با ajax آشنا بشیم.

معرفی Ajax

 

فرض می کنیم که شما قبلا با jquery و javascript آشنایی داشته باشید، بنابراین شاید هنگامی که کدهای Ajax را ببینید، یک ابهام در ذهن شما به وجود بیاید که اصلا تفاوت Ajax و jquery و javascript در چیست، زیرا احساس می کنید که در حال استفاده از jquery و javascript هستید، نه یک چیز جدید. بنابراین بد نیست که تفاوت این سه را در همین ابتدای معرفی Ajax ، بیان کنیم.  jquery یک کتابخانه (چارچوب – framework) برای javascript است که به ما امکان می دهد که با نوشتن مقدار کمتری کد، عملیات های بیشتر و سطح بالاتری را اجرا کنیم. اما Ajax یک روش جدید برای ارتباط بین صفحه در حال اجرا در مرورگر اینترنت و یک صفحه پویا (با قابلیت تعامل با سرور و پایگاه داده سایت) می باشد. در واقع، Ajax یک تکنیک (technique) است، نه یک زبان جدید یا هر مورد دیگری که ممکن است به ذهن شما برسد. برای اجرای کدهای Ajax ، به پیش نیاز خاصی احتیاج ندارید. یعنی آن را می توان با کدهای javascript به تنهایی اجرا کرد. در واقع، کدهای Ajax ، همان کدهای javascript می باشد و تنها برای این تکنیک و روش ها و کدهای مربوط به آن، لغت Ajax به کار می رود. دقت شود که اگر در کدهای javascript نوشته شده در یک صفحه، روش های کتابخانه jquery هم به کار رفته باشد، باید به فایل کتابخانه jquery ارجاع داده شود (این مورد را به صورت کلی بیان کردیم، نه برای تکنیک Ajax . زیرا گاهی کدهای javascript ، شامل روش های تکنیک Ajax و همچنین روش های کتابخانه jquery می باشد و کاربر وقتی ارجاع به فایل کتابخانه jquery را حذف می کند و مشاهده می کند که کدها به درستی اجرا نمی شوند، آنگاه تصور می کند که تکنیک Ajax به فایل کتابخانه jquery نیاز داشته است).

پیش نیاز اجرای ajax

 

 

 

حال که تفاوت بین Ajax و jquery و javascript بیان شد (که حداقل پیش نیاز اجرای آن را بدانید و ابهامی در مورد شروع یادگیری یک زبان جدید نداشته باشید)، بیان می کنیم که اصلا Ajax چه قابلیتی را در اختیار ما قرار می دهد که تاکنون از آن محروم بوده ایم. فرض کنید وب سایت ما با یک زبان پویا (داینامیک) مثل PHP برنامه نویسی شده باشد. وقتی کاربر یک صفحه PHP (با پسوند php) از سایت را در مرورگر اینترنت خود اجرا می کند، کدهای PHP در سرور سایت اجرا شده و نتیجه آن، به صورت کد HTML (که استاتیک است) به کامپیوتر کاربر ارسال شده و در مرورگر اینترنت وی، کدهای HTML اجرا می شوند و کاربر نتیجه را در خروجی مرورگر اینترنت مشاهده می کند. پس مرحله اجرای کد PHP ، در سرور و مرحله اجرای کد HTML ، در کامپیوتر کاربر است. پس صفحه PHP نمی تواند انتخاب های کاربر در صفحه را ببیند، در واقع انتخاب هایی که کاربران در صفحه HTML انجام می دهند (مثل تغییر اطلاعات یک فرم و انتخاب های آن)، تنها با همان کد HTML موجود در صفحه است و تا زمانی که یک درخواست دیگر به سرور نفرستند، صفحات سرور از انتخاب های کاربر با خبر نخواهند بود.

 

تعامل هایی بین کامپیوتر کاربر و صفحات پویا در سرور با استفاده از تکنیک ajax

 

بنابراین چنانچه ما بخواهیم بر اساس انتخاب های کاربر در صفحه (و البته بدون اجرای یک صفحه دیگر و تنها با ایجاد تغییراتی در همین صفحه)، اطلاعاتی را به سرور بفرستیم یا اطلاعاتی را از سرور دریافت کنیم، نیاز به یک تکنیک جدید داریم که همان Ajax است. پس Ajax به ما این قابلیت را می دهد که بدون استفاده از روش های معمول برای تبادل اطلاعات با سرور، در پس زمینه همین صفحه فعلی، تبادل اطلاعات با سرور (صفحات داینامیک یا سرور) داشته باشیم (ایجاد یک سری تعامل ها بین کامپیوتر کاربر و صفحات پویا در سرور، بدون استفاده از روش های رایج مثل اجرای صفحه جدید یا درخواست هایی از جنس روش های GET و POST). دقت شود که اگرچه می گوییم تعامل با صفحات داینامیک سرور، ولی در واقع این تعامل می تواند هم با صفحات داینامیک و هم با صفحات استاتیک موجود در سرور صورت گیرد (در کل، صفحه ای غیر از صفحه فعلی که در مرورگر اینترنت کاربر نمایش داده شده است).

Ajax از روش XMLHttpRequest برای ارتباط با سرور (صفحات سرور) استفاده می کند. لغت Ajax ، مخفف Asynchronous Javascript And XML می باشد (در واقع به این نکته اشاره دارد که در آن از کدهای javascript برای ایجاد XMLHttpRequest استفاده می شود).

 

کاربردهای فن آوری Ajax

 

اگر شما میخواهید یک برنامه نویس خوب وب باشید، تسلط بر فن آوری های پیشرفته ای همچون Ajax از ضروریات کارتان خواهد بود. با توجه به توضیحاتی که ارائه کرده ایم، قطعاً نمیتوان فهرست مشخصی از کاربردهای Ajax ارائه کرد چون این فن آوری میتواند در بخشهای مختلف کاربرد داشته باشد اما در اینجا برخی کارکردهای رایج و مهم Ajax را بطور مختصر بررسی می کنیم:
۱ – بررسی وجود کاربر مشابه در هنگام ثبت نام کاربران: یکی از کاربردهای نسبتاً ساده ولی در عین حال مفید Ajax، بررسی دیتابیس سایت در هنگام ثبت نام کاربران جدید میباشد. فرض کنید کاربری قبلاً در سایت شما با یک نام کاربری خاص ثبت نام کرده است، اکنون کاربر دیگری میخواهد با همین نام کاربری ثبت نام کند و احتمالاً شما نمیخواهید دو کاربر با یک نام کاربری یکسان ثبت نام کنند. در حالت معمول شما میتوانید پس از فشردن دکمه ثبت نام توسط کاربر و در کد مربوط به دکمه ثبت نام، دیتابیس را بررسی کرده و در صورت وجود نام کاربری یکسان، عملیات ثبت کاربر جدید را متوقف کنید یا به کاربر پیام بدهید. در هر صورت به این ترتیب یک postback کامل خواهید داشت که شاید چندان خوشایند کاربر نباشد. اما به کمک Ajax میتوانید عملیات postback را حذف کرده و سرعت کار را افزایش دهید. کافیست یک تابع استاتیک (WebMethod) در کد سرور بنویسید که دیتابیس را چک کرده و در صورت وجود نام کاربری مشابه یک مقدار مشخص بازگشت دهد. سپس میتوانید در تابع client مربوط به خروج از کادر متنی نام کاربری یا در تابع client مربوط به کلیک دکمه ثبت نام، از طریق JQuery این تابع را فراخوانی نمایید و در صورت وجود نام کاربری یکسان در دیتابیس پیامی به کاربر بدهید و البته اجازه اجرای کد سرور را نیز ندهید. به این ترتیب احتیاجی به رفرش صفحه نخواهد بود، همین تکنیک را میتوانید به صورتهای دیگری نیز استفاده کنید.

 

۲- احتمالاً نحوه نمایش commentها در سایت facebook یا نمایش تصاویر در بخش جستجوی تصاویر google توجه شما را جلب کرده است. هر دو سایت رویکرد مشابهی دارند، در ابتدا بخش کوچکی از اطلاعات را نمایش میدهند تا صفحه خیلی سریع بارگذاری شود، سپس در صورت لزوم اطلاعات بیشتر را آرام آرام بارگذاری می کنند. شما نیز میتوانید به کمک Ajax این تکنیک زیبا را شبیه سازی کنید. به این منظور باید یک تابع سرور برای ایجاد اطلاعات صفحات جدید در قالب html بسازید، و این تابع را در رویداد scroll down صفحه فراخوانی کنید. در این صورت وقتی کاربر صفحه را scroll کرده و به انتهای صفحه برسد تابع استاتیک مربوطه از JQuery Ajax اجرا شده و محتوای صفحه جدید به مرورگر ارسال میشود. سپس شما این محتوای جدید را در صفحه نمایش میدهید. البته از آنجاییکه مرورگر چیزی جز html نمیفهمد شما هم باید صرفاً محتوای html ارسال کنید، یعنی تابع استاتیک سرور باید اطلاعات را به فرمت html تولید کرده و به صورت رشته ارسال کند. حتی شما میتوانید در زمان اجرای پشت صحنه تابع سرور دریافت صفحات (که ممکن یکی دو ثانیه طول بکشد) یک فایل gif animated را در صفحه پخش کنید تا کاربر متوجه شود که صفحات جدید به زودی نمایش داده میشوند.

۳- یکی از کاربردهای مفید Ajax در توسعه وب، انجام فعالیتهای دیتابیسی در پشت صحنه میباشد. از آنجا که عملیات مربوط به دیتابیس همواره سنگین و زمان بر بوده و میتواند موجب کندی اجرای صفحات وب شود، شما میتوانید برخی از عملیاتهای مربوط به دیتابیس از جمله و خواندن و نوشتن و یا حذف از دیتابیس را توسط Ajax انجام دهید. به این ترتیب احتیاجی به رفرش صفحه نخواهد بود و در نتیجه سرعت اجرای سایت شما افزایش خواهد یافت. البته بخاطر داشته باشید که ممکن است به دلایل مختلف (از جمله عدم پشتیبانی مرورگر یا غیر فعال کردن جاوا اسکریپت توسط کاربر) امکان استفاده از Ajax وجود نداشته باشد، و در این شرایط شما باید سناریوی دیگری را به منظور مدیریت فعالیتهای دیتابیس به پیش ببرید.

 

چرا باید از Ajax استفاده کنیم؟

برنامه های تحت وبی که از Ajax بهره میبرند خصوصیات زیر را دارا هستند:

[list_group]

مولفه های آشنا و تعاملی رابط کاربری مانند نشان دهنده پیشرفت (progress bar)، tooltipها، و همچنین پنجره های pop-up

کارایی بهتر برای برنامه های وب فرم، زیرا بیشتر بخشهای پردازشی صفحه وب میتواند در مرورگر انجام شود

به روز رسانی مقطعی صفحه (partial update) که تنها بخش تغییر یافته صفحه را refresh میکند

یکپارچه سازی بخشهای client-side برنامه با خدمات برنامه سرور، بخصوص در فرآیند تایید اعتبار، تعیین نقش کاربران و پروفایل کاربران

توانایی سفارشی سازی کنترلهای سرور به منظور استفاده از ظرفیتهای client

پشتیبانی از بیشتر مرورگرهای معروف، از جمله IE، فایرفاکس، کروم و سافاری

اما مایکروسافت بعنوان بزرگترین سازنده ابزارهای توسعه ای و ارائه دهنده سیستم قدرتمند ASP.NET، نسخه ای از Ajax را با نام Microsoft Ajax عرضه می کند که عمدتاً مبتنی بر ASP.NET است. اما معماری Microsoft Ajax چیست؟ مولفه های مختلف موجود در این سیستم چطور با هم کار می کنند؟ در واقع یک برنامه وب Microsoft Ajax از یک پروژه صرفاً client-side و یا ترکیبی از یک client و server تشکیل شده است. یک پروژه صرفاً client از کتابخانه Microsoft Ajax بهره میبرد ولی از کنترلهای سرور استفاده نمیکند. مثلاً یک صفحه HTML میتواند حاوی مولفه های script باشد که از فایلهای کتابخانه Ajax استفاده می کنند. از سوی دیگر کتابخانه Ajax مایکروسافت نیز به برنامه های Ajax امکان میدهد کلیه پردازشها را در سمت client صورت دهند. یک پروژه ترکیبی client و server نیز از کتابخانه Ajax مایکروسافت و کنترلهای سرور ASP.NET بهره میبرد.

[/list_group]

 

 

بازنشانی رمز عبور
عضویت
خروج از نسخه موبایل