شنبه ۲۲ شهریور ۱۴۰۴

Saturday, September 13, 2025 GMT +3:30

نمایش پیام در حال بارگذاری با جاوا اسکریپت (JavaScript)

javascript-loading

برای هدف های زیادی می توانیم از جاوا اسکریپت (JavaScript) در وب استفاده کنیم، قابلیت های متنوع و قدرت این زبان اسکریپت نویسی و مهمتر از همه ویژگی سمت کاربر (Client-side) بودن آن این امکان را به برنامه نویس می دهد تا در موقعیت های متفاوت بر فعل و انفعالات رابط کاربری صفحه کنترل داشته و عملکرد و پردازش های مرورگر را مدیریت کند، یکی از این موقعیت ها زمانی است که صفحه سایت یا وبلاگ در حال بارگذاری (Loading) است، بدین منظور در جاوا اسکریپت متدی به نام document.readyState و رویداد document.onreadystatechange وجود دارد که دقیقا با همین هدف یعنی شناسایی زمانی که صفحه وب کاملا بارگذاری می شود تعریف شده اند، به این صورت می توانیم مرحله قبل و بعد از بارگذاری صفحه را از هم تفکیک و به فرض پیامی مبنی بر شکیبایی تا بارگذاری کامل محتوا نمایش دهیم، ایجاد چنین قابلیتی به خصوص برای صفحاتی که دیتای حجیمی دارند می تواند به ارتقای رابط کاربری و عدم بستن صفحه توسط کاربر به دلیل طولانی شدن فرآیند Loading کمک کند، از این رو در مطلب پیش رو می خواهیم با استفاده از متد document.readyState با نحوه نمایش پیام و تصویر "در حال بارگذاری... لطفا چند لحظه صبر کنید!" آشنا شویم.

ایجاد تگ HTML نمایش پیام و تصویر در حال بارگذاری (Loading)


قبل از هر چیز برای نمایش پیام و تصویر در حال بارگذاری یا Loading باید در سورس HTML صفحه تگی با ID مشخص جهت نمایش پیام و انیمیشن یا تصویر تعریف کنیم، این تگ ترجیحا می تواند به صورت تگ div باشد برای نمونه کد زیر را پس از تگ body درج می کنیم، این قسمت در واقع همان بلاکی است که پیام و انیمیشن یا تصویر "صفحه در حال بارگذاری است... لطفا شکیبا باشید!" یا هر متن دلخواه دیگری را نمایش می دهد.
<div id="loading-main">
<div id="loading-animation"></div>
در حال بارگذاری... <br> لطفا چند لحظه صبر کنید!
</div>
در این نمونه کد از پیام متنی و انیمیشن مبتنی بر دستورات CSS برای ایجاد تصویر متحرک کمک گرفته ایم که در ادامه به آن خواهیم پرداخت، نکته مهم در این نمونه کد در نظر گرفتن آی دی یکتا برای تگ های div است که به صورت عبارات loading-main و loading-animation تنظیم شده است، از این آی دی ها برای استایل دهی و شناسایی تگ توسط دستورات جاوا اسکریپتی که در ادامه خواهیم دید استفاده کرده ایم.
JavaScript Page Loading

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


برای سفارشی سازی ظاهری و شناور کردن بلاک نمایش پیام و انیمیشن یا تصویر در حال بارگذاری (Loading) در بالاترین قسمت صفحه (ترجیحا مابین تگ های head) استایل CSS زیر را به سورس کدها اضافه می کنیم، این استایل به صورت شناور (position: absolute) است و از تکنیک keyframes و transform: rotate برای ایجاد حالت انیمیشن "دایره گردان" استفاده شده است.
<style>
#loading-main {
    display: block;
    position: absolute;
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 12px;
    color: #f0c;
    text-align: center;
    direction: rtl;
    width: 300px;
    height: 200px;
    line-height: 22px;
    top: 25%;
    bottom: 0;
    left: 0;
    right: 0;
    margin:0 auto;
}
#loading-animation {
    border: 12px solid #f5f5f5;
    border-top: 12px solid #999;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    margin: 0 auto;
    animation: spin 1s linear infinite;
}
@keyframes spin {
    100% {
        transform: rotate(360deg);
    }
}
</style>
دقت کنیم که فقط یک تگ در خروجی HTML سایت ما باید آی دی loading-main داشته باشد به عبارتی دیگر مقدار آی دی در صفحات وب یکتا است و نباید بین تگ های مختلف مشترک باشد، وجود آی دی همسان برای دو تگ مختلف باعث ایجاد مشکل در شناسایی عناصر صفحه خواهد شد.

کنترل نمایش و مخفی سازی بلاک با JavaScript


در حالت عادی و قبل از بارگذاری کامل محتوای صفحه وب بلاک loading-main به صورت مرئی و قابل روئیت است اما زمانی که فرآیند بارگذاری کامل می شود این بلاک باید مخفی شده و نمایش داده نشود، برای کنترل نمایش یا عدم نمایش بلاک و همچنین محتوای تگ body اسکریپت زیر را در کد قالب پس از تگ body و پس از بلاک loading-main درج می کنیم، این اسکریپت در واقع تابعی مبتنی بر متدهای document.readyState، document.querySelector، display و visibility است که با تغییر وضعیت بارگذاری صفحه در رویداد document.onreadystatechange قسمت های شرطی آن اجرا می شود.
<script>
document.onreadystatechange = function() {
    if(document.readyState !== "complete") {
        document.querySelector("body").style.visibility = "hidden";
        document.querySelector("#loading-main").style.visibility = "visible";
    } else {
        document.querySelector("#loading-main").style.display = "none";
        document.querySelector("body").style.visibility = "visible";
    }
};
</script>
رویداد document.onreadystatechange با هر تغییر وضعیت بارگذاری صفحه فراخوانی می شود و با بررسی مقدار متناظر متد document.readyState (شامل موارد loading, interactive, complete) می توانیم در صورتی که پاسخ complete بود (یا نبود) تصمیم بگیریم که کدام عنصر را به حالت مرئی و کدام مورد را مخفی کنیم.

کد کامل پیام و تصویر "صفحه در حال بارگذاری..." و پیش نمایش آنلاین


همان طور که دیدیم برای ایجاد پیام "صفحه در حال بارگذاری است... لطفا کمی صبر کنید." به کمک جاوا اسکریپت کافی است از نمونه کدهای بالا به ترتیبی که گفتیم در قالب سایت یا وبلاگ خود استفاده کنیم، به این صورت پیش از اینکه صفحه به طور کامل در مرورگر بارگذاری شود پیامی به کاربر نشان داده می شود که بعد از تکمیل بارگذاری محو خواهد شد، در هر صورت برای جمع بندی توضیحات و تجمیع کدها در یک صفحه می توانیم نمونه کد زیر را بررسی و پیش نمایش آنلاین آن را امتحان کنیم ( با توجه به کش شدن تصویر در مرورگر احتمالا در حالت سرور-آنلاین فقط برای بار اول پیام بارگذاری را خواهیم دید اما برای بررسی بیشتر می توانیم کد را در صفحه ای بر روی دستکتاپ ذخیره کرده و با دستورالعملی که در انتها گفته ایم، فرآیند تست را بدون محدودیت به صورت لوکال-آنلاین انجام دهیم).
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | نمایش پیام صفحه در حال بارگذاری</title>
<!-- Webgoo.ir -->
<style>
#webgoo-logo {
    display: block;
    position: absolute;
    background-color: #0E5076;
    width: 20%;
    height: 20%;
    top: 25%;
    bottom: 0;
    left: 0;
    right: 0;
    margin:0 auto;
    padding: 8px;
}
#loading-main {
    display: block;
    position: absolute;
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 12px;
    color: #f0c;
    text-align: center;
    direction: rtl;
    width: 300px;
    height: 200px;
    line-height: 22px;
    top: 25%;
    bottom: 0;
    left: 0;
    right: 0;
    margin:0 auto;
}
#loading-animation {
    border: 12px solid #f5f5f5;
    border-top: 12px solid #999;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    margin: 0 auto;
    animation: spin 1s linear infinite;
}
@keyframes spin {
    100% {
        transform: rotate(360deg);
    }
}
</style>
</head>
<body>
<noscript>جاوا اسکریپت در مرورگر شما پشتیبانی نمی شود یا غیرفعال است!</noscript>
<div id="loading-main">
<div id="loading-animation"></div>
در حال بارگذاری... <br> لطفا چند لحظه صبر کنید!
</div>
<script>
document.onreadystatechange = function() {
    if(document.readyState !== "complete") {
        document.querySelector("body").style.visibility = "hidden";
        document.querySelector("#loading-main").style.visibility = "visible";
    } else {
        document.querySelector("#loading-main").style.display = "none";
        document.querySelector("body").style.visibility = "visible";
    }
};
</script>
<!--
کدهای نمایش پیام در حال بارگذاری را در قسمت بالا درج کنید
کدهای مربوط به سایر محتوای صفحه را در قسمت پائین درج کنید
-->

<div id="webgoo-logo">
<a href="https://webgoo.ir" title="وبگو | آموزش برنامه نویسی و مهارتهای وب" target="_blank">
<!--
برای تست مجدد عملکرد کد در حالت لوکال-آنلاین، عبارت فرضی
py75mr3rtyuo1
را در قسمت
 src
 تغییر داده، صفحه را در دستکتاپ ذخیره کرده و آدرس مرورگر را رفرش کنید
 -->

<img id="logo-img" alt="Webgoo" src="https://webgoo.ir/image/webgoo.svg?ver=py75mr3rtyuo1">
</a>
</div>
</body>
</html>
پیش نمایش آنلاین
دسته بندی: آموزش کاربردی » JavaScript
related مطالب بیشتر:
ایجاد پنل جمع شونده با جاوا اسکریپت و فریم ورک Spry
ساخت افکت رنگی با جاوا اسکریپت (JavaScript)
ساخت پنل چند سربرگی (Tabbed Panel) با جاوا اسکریپت و CSS
چگونه لوگوی حمایتی برای نمایش در سایت یا وبلاگ بسازیم؟
اعتبارسنجی فرم های وب با جاوا اسکریپت (JavaScript)
دیدگاه
more ۳۲ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
بهاره هوشمندی
۲۱:۱۷ ۱۴۰۲/۱۰/۲۳
توی اکشن callback فقط کوئری ها هستند و من دستور die رو جای مناسب گذاشتم چون جای دیگه نمیشه گذاشت! این کوئری ها هستند که سرعت سرور رو کم کردن تعداد دستورات بالای ۲۵۰ تا هستند چند روز پیش ۴۲ تا دستور رو حذف کردم ولی بازم زمان زیادی درگیر میشه فقط با دستور die میشه پیام رو به کاربر نشون داد چون همانطور که گفتم ویو نداره الان فقط یه روش مونده امتحانش کنم اینکه توی دستور die فرآیند بصورت continue اجرا بشه و هیچ لینکی مسیر کال بک به فینیش رو تغییر نده یه بار مسیر فینیش رو بهش دادم و رفت به اون مرحله فقط کوئری ها هیچ کدوم اجرا نشدن
لینک تست:
حذف شد
با تشکر
لینک بررسی شد، ظاهرا پاسخ به درخواست کاربر در بخش سرور به کلی تاخیر دارد یعنی کدهای شما به صورت داخلی در سرور کند عمل می کنند و در نهایت پاسخ در یک مرحله دریافت و کاربر به آدرس finish هدایت می شود، با این تفاسیر die نمی تواند هرجایی درج شود و باید جایی باشد که عملکرد برنامه را ناقص تمام نکند، آدرس انتقال هم باید از کدهای برنامه شما به دست بیاید که همان URL صفحه finish است، با این تفاسیر نیاز به ویرایش اساسی اسکریپت اجرا کننده تراکنش است که کار زمانبری خواهد بود و احتمالا ابتدا نیاز به درک ساختار کدنویسی و روند اجرای برنامه است، به نظر نمی رسد این تغییر طوری باشد که خودتان بتوانید به راحتی انجام دهید، متاسفانه به جهت زمانبر بودن امکانش برای ما هم میسر نیست.
در مرورگر دکمه F12 را بزنید و جزئیات بارگذاری صفحه را در قسمت Network مشاهده کنید، می بینید که تاخیر در پاسخ دارد.
بهاره هوشمندی
۱۶:۵۵ ۱۴۰۲/۱۰/۲۳
با تشکر از شما استاد بزرگوار
اینو تست کردم لینک رو به درستی شناسایی نمی کنه و ارور میده! وگرنه همون مسیر خودش رو واسه لینک هست! نمیشه کاری کرد فرآیند بصورت continue عمل کنه و لینک رو وارد نکنیم؟ الان چند بار تست کردم لینک رو ثابت نگه می داره و واسه finish نمیره نمیشه کاری کرد واسه لینک عمل continue اجرا بشه؟ الان من پیام رو توی صفحه کال بک می بینم ولی لینک ثابت هست و به همین خاطر ارور میده در حال عادی بعد از این فرآیند به صفحه finish میره توی دستور die نمیشه کاری کرد که continue اجرا بشه؟
فکر کنم اینطوری مشکل منم حل میشه
با تشکر
متاسفانه علی رغم اینکه گفتیم رفع مشکل نیاز به تست واقعی دارد آدرسی ارسال نکردید که ما بتوانیم تست کنیم و صرفا با حدس و گمان و طبق توضیحات شما راهنمایی می کنیم، یک برنامه ممکن است جزئیات خیلی زیادی داشته باشد که از نظرها پنهان است و صرفا فعل و انفعالات ظاهری نیست، اصولا این نوع موارد جزء خطایابی عملی راه حلی ندارند، هرچند تغییرات می توانند خیلی ساده باشند اما تا وقتی مشکل به درستی پیدا نشود معما هم آسان نمی شود!
بهاره هوشمندی
۰۱:۰۹ ۱۴۰۲/۱۰/۲۳
با سلام استاد
با sleep نمیشه متن به کاربر نشون داد فقط میشه تاخیر ایجاد کرد واسه همین die بهتره ولی من نمی دونم چطوری با دستور die بگم که کاربر به مرحله بعد بره متن نوشتم و مرحله کال بک متن رو با die به کاربر نشوم دادم ولی از این مرحله باید ادامه فرآیند طی بشه با sleep کاربر بازم صفحه سفید می بینه ولی با die متن نوشتم و کاربر اون متن رو می بینه با settimeout هم ‌۱۰ ثانیه کاربر متن رو می بینه ولی واسه ادامه رفتن فرآیند نمی دونم چطوری باید باشه نمونه کد ندارم که به ادامه فرایند رو کاربر بره مثل این می مونه که یه نفر می خواد جایی بره بعد از یکی می پرسه چطوری برم! و جوابش فقط این باشه که برو مستقیم برو اینم همین طوره که با die جلوی کاربر رو بگیری فقط جلوش رو بگیری ولی بعد کاربر ادامه فرآیندش بره واسه اینکه یه امتحان تستی انجام بدید اینکارو انجام بدید
روی یه لینک کلیک کنید موقع باز کردن لینک به کاربر بگین وایسا اینو ببین با دستور die بعد توی دستور die ادامه فرآیند باز کردن لینک باشه اینجا واسه کامنت دکمه ارسال هست واسه تست میشه کاری کرد
ارسال رو که میزنی با دستور die به کاربر بگی خیلی ممنون که پیام ارسال کردی بعد ادامه فرآیند ارسال پیام طی بشه توی همه ی فرومهای خارجی سرچ کردم پیدا نکردم اگه کال بک صفحه و ویو داشت برام خیلی راحت بود ولی ویو نداره به جای صفحه مرگ die چند ثانیه پیامی به کاربر نشون داده بشه بعد بهش بگی برو...
یه نمونه کد با دستور die براتون میذارم که خودم تست کردم
با تشکر
<?php
die("
<meta charset=utf-8>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<div style='margin:0px auto !important;padding:0px !important;width:920px !important;max-width:97% !important'>
<center style='margin-top:7px;background:#F6F6CA'>
لطفا تا ادامه فرآیند منتظر بمانید!<br>
شما در حال انتقال به صفحه اصلی سایت هستید...<br></div>
<script>
setTimeout(function(){
window.location='$url'
},5000);
</script>
");
?>
این برای یه url تعیین شده است که بعد از چند ثانیه کاربر به اون هدایت میشه به جای url باید کاری کنم که کاربر همون لینکی که باز شده رو بره
اگر مشکل فقط تنظیم لینک ارجاع به همان صفحه است می توانید کد زیر را بالاتر از دستور die درج کنید:
$url = (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
کد به صورت مستقل عمل می کند و مشکلی ندارد پس اگر با درج در کدهای شما عمل نکند و صفحه بعد از 5 ثانیه رفرش نشود یعنی جایی از کار ایراد دارد و باید خطایابی شود.
بهاره هوشمندی
۱۹:۴۴ ۱۴۰۲/۱۰/۲۱
با سلام
متاسفانه هرکاری کردم نشد! یه هفته ست درگیرش هستم
انگار هیچ راهی نداره البته احتمالا به دستور die باشه ولی اون وقفه می اندازه و بعدش کاربر باید کلیک کنه که برگرده به سایت که من بلد نیستم! یه طوری باشه که دستور die اجرا بشه و منتظر کلیک کاربر نباشه باید ادامه دستور رو خودش بصورت خودکار بره و یا ۱۰ ثانیه تنطیم بشه پیام نشون داده بشه، و همزمانی که callback اجرا میشه اونم اجرا بشه فقط die یه مشکلی داره که صفحه رو متوقف می کنه و کاربر یا باید بره جلو و یا باید صفحه رو بره عقب! الان اگه دستور die اجرا بشه و ادامه فرایند رو بره درست میشه
وگرنه هیچ راهی نداره چون باید id براش تعریف کرد و چون فایل view نداره کد اجرا نمیشه
به جای die می توانید sleep را امتحان کنید، هرچند به نظر این مشکل صرفا با آزمون و خطای واقعی قابل بررسی و رفع است!
بهاره هوشمندی
۰۳:۰۶ ۱۴۰۲/۱۰/۱۹
من تونستم یه جوری کدها رو توی قالب بذارم ولی چون کال بک اصلا فایل ویو نداره و یک چک کنه است هیچ جوری پیام نشون داده نمیشه! توی صفحه finish نشون میده ولی توی callback همون روال قبل خودش رو داره برای همین تا کد رو وارد اکشن callback نکنم پیام صبر کنید نشون داده نمیشه و فقط هم پیام برای این صفحه لازمه چون وقت برگشت زمان پردازش زیاده من اینجا کدها رو خلاصه کردم وگرنه کدهایی که وجود دارند بالای شونصدتا خط هستن. و موقع برگشت دونه به دونه بررسی میشن و دقیقا ۱۵ ثانیه زمان میبره به صفحه finish بره و کاربرا فکر می کنن مشکل توی پرداخت بوجود اومده و اگه یه پیام ببینن که حداکثر تا ۱۵ ثانیه صبر کنن به صفحه finish دایرکت میشن!
توی همه فرومها نگاه کردم نبود جایی که بشه جوابی پیدا کنم
یه هفته ست شبا هی چک می کنم ولی جواب نمی گیرم
واسه همین مزاحم شما شدم
امیدوارم منو ببخشید
با تشکر
به نظر این مشکل صرفا با آزمون و خطای واقعی قابل بررسی و رفع است، احتمالا روش آموزش داده شده مستقیما در کدهای شما قابل استفاده نیست، متاسفانه توضیحات هم بدون امکان مشاهده روند کار فریم ورک کمک چندانی نمی کند.
بهاره هوشمندی
۰۱:۵۸ ۱۴۰۲/۱۰/۱۹
با تشکر از شما
من فقط اکشنش رو دارم که اکشن به تنهایی کار نمی کنه! :(
الان این کد رو توی قالب گذاشتم تا هر وقت توی لینک callback وجود داشت کد رو اجرا کنه ولی کلا همه ی جای صفحه سفید میشه
<?php
$link = $_SERVER['QUERY_STRING'];
if( ! empty($link) and strpos($link, 'callback')!==false)
{
echo "<div id='loading-main'>";
echo "<div id='loading-animation'></div>";
echo "در حال بارگذاری...<br> لطفا چند لحظه تا بارگذاری کامل صفحه منتظر بمانید...!</div>";
}
?>
وقتی اسکریپتش رو حذف می کنه صفحه از سفیدی در میاد ولی کد عمل نمی کنه احتمالا به خاطر تگ body هست و توی قالب نمیذاره عمل کنه!
کد قابل تست آنلاین نیست و متاسفانه از این قسمتی که درج کرده اید برداشت خاصی برای خطایابی نمی توانیم داشته باشیم.
بهاره هوشمندی
۲۲:۳۹ ۱۴۰۲/۱۰/۱۸
با سلام و با تشکر از شما
استاد خیلی خوب بود
من توی فریمورک yii صفحه callback ندارم کاربر زمان زیادی برای اکشن callback میذاره حدود ده تا ۱۵ ثانیه بعد از بررسی اکشن callback به صفحه finish هدایت میشن و من این کد رو واسه این میخوام که توی اکشن callback قرار بدم چون کاربر فقط بعد از برگشت از بانک به اکشن callback هدایت و بعد به صفحه انتهایی finish هدایت میشن من نیاز دارم این کدها رو توی اکشن کنترلر قرار بدم چون همانطور که گفتم صفحه callback ندارم این کدها رو توی صفحه finish گذاشتم ولی چون اونجا اکشن callback عمل نمی کنه کاربرد نداره چون پردازش دستورات کوئری در اکشن callback زمان زیادی می بره صفحه تا بارگذاری صفحه سفید نشون داده میشه تا صفحه کامل لود میشه
متاسفانه این فریم ورک را نصب نداریم، این کد بر اساس وضعیت های مرورگر عمل می کند و دسترسی به فعل و انفعالات سمت سرور ندارد، برای اتصال رفتار کد با اتفاقات سرور نیاز به فناوری های بینابینی مانند Ajax است، در هر صورت اگر یک نمونه صفحه آنلاین قابل تست درج کنید می توانیم بررسی و چگونگی استفاده از کد در فریم ورک Yii را خدمتتان اعلام کنیم، در کل برای فریم ورک های مبتنی بر معماری MVC (Model-View-Controller) در قسمت View و فایل های قالب می توانیم چنین امکانات سمت کاربری را اعمال کنیم.
روستازاده
۰۹:۳۳ ۱۴۰۱/۰۱/۲۰
با سلام
ببخشید این چند روز خیلی شما رو زحمت دادم شرمنده یه سوال داشتم توی یه صفحه با فروم یک کد جاوا تولید میشه کدهای جاوا هم بلافاصله توی textarea نمایش داده میشه و با تغییر محتوای فروم اونم تغییر می کنه توی textarea اینطوری نمایش داده می شه
<textarea dir=ltr id=codeGet rows=3 cols=75 readonly=readonly onmouseup="this.select()"></textarea>
اینم توی view-source نشون داده نمیشه بعد می خوام من از این با echo خروجی بگیرم یه خروجی می خوام بگیرم چون توی همون صفحه می خوام این خروجی رو ازش یه جور دیگه استفاده کنم راهی وجود داره من اینکارو انجام بدم؟
با تشکر
از دستور echo در PHP زمانی می توانیم استفاده کنیم که محتوای فرم به سرور ارسال شده باشد، اگر فرم هنوز ارسال نشده باشد تنها در سمت کاربر (مرورگر) می توانیم با JavaScript به عناصر صفحه و محتوای آنها دسترسی داشته باشیم و آن هم باید در یک رویداد به فرض پس از کلیک بر روی یک دکمه باشد، در این صورت می توانیم با پارامتر ID تگ textarea به این عنصر یا محتوای آن دسترسی پیدا کنیم.
مهدیه
۱۱:۴۲ ۱۳۹۷/۰۶/۲۰
خیلیی ممنون خدا خیرتون بده عالی هستین
۲۲:۵۳ ۱۳۹۵/۱۰/۱۹
سلام؛ روی سایتم گذاشتم عمل نکرد ، فقط تنها کاری که غیر از کارایی بود که شما گفتید انجام دادم ، اینه که تکه کد جاوا رو به صورت یه فایل جاوا لینک کردم در هدر؛
ولی عمل نکرد ؛
حالا نمیدونم به روش وارد کردن مستقیم کدهای جاوا عمل میکنه یا نه !
سایت شما بررسی شد، کد به خوبی عمل می کند! ممکن است به دلیل سرعت بارگذاری صفحه متوجه نمایش پیام نشده باشید! در واقع این قابلیت برای صفحاتی که به سرعت بارگذاری می شوند (یا مواقعی که سرعت اتصال اینترنت کاربر بالا است) چندان ملموس نیست که این موضوع طبیعی خواهد بود.
۰۱:۰۸ ۱۳۹۵/۰۷/۲۶
سلام این کدها کار میکنند اما مشکلش اینه که بعد از بارگزاری کامل پیام محو نمیشه. چیکار باید بکنم؟
اصول این کد بسیار ساده است، لذا این احتمال وجود دارد که صفحه در مدت زمان مناسب و کامل بارگذاری نمی شود (معمولا به دلیل وجود ابزارها و کدهای مختلف که در عمل مانع بارگذاری کامل صفحه می شوند)، یا اینکه بخش های مختلف کد به درستی درج نشده است!
نکته: طبق یررسی ما کدنویسی HTML قالب وبلاگتان دچار اشکالات متعدد است و علت کار نکردن کد نیز همین است!
احسان
۱۸:۱۵ ۱۳۹۴/۰۷/۰۷
سلام خدا قوت
واقعا سایت خوبی داری به خصوص مطالب حرفه ای رو خوب اموزش دادی ایول من شما رو بوکمارک کردم
سجادی
۱۴:۰۴ ۱۳۹۴/۰۴/۰۷
تشکر بابت بخشندگی علمی
امین
۰۱:۵۴ ۱۳۹۳/۰۶/۱۵
آموزش خیلی خوبی بود
اگه بخوایم از این کد ها به صورت جاوا اسکریپت فراخوانی کنیم باید چه تغییری در اون ایجاد بشه یعنی به شکل زیر فراخوانی بشه مثل سایت های ابزار دهی
<script src="http://www.site.ir/load.php"></script>
انجام این مورد نیاز به آموزش های جداگانه (استفاده ترکیبی از PHP و JS) دارد، شرح جزئیات کار در این قسمت ممکن نیست، صرفا جهت راهنمایی:
قسمت اصلی کدها می تواند به صورت خروجی PHP چاپ شود، برای قسمت body و onload می توانید از روش جایگزین زیر استفاده کنید تا نیاز به دستکاری سورس صفحه هدف نباشد:
<script type="text/javascript">
window.onload = function(){
pageLoading();
}
</script>
نکته: این روش تست نشده!
مینا
۱۷:۱۴ ۱۳۹۳/۰۵/۰۶
با سلام
ببخشید در قسمت if else
(if (document.getElementById یعنی چی؟ یعنی چه موقع true میشه؟
همینطور (if (document.layers
خیلی ممنون از اموزش خوبتون
سلام
در این حالت دستور if زمانی true خواهد بود که متد document.getElementById در مفسر جاوا اسکریپت مرورگر تعریف شده باشد (در مرورگرهای قدیمی این متد وجود ندارد و لذا نتیجه false خواهد شد)، همین طور است برای document.layers که البته این متدی قدیمی است و در مرورگرهای جدید استاندارد محسوب نمی شود.
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
6 × 2
20 × 20
=