آیا راهی برای صدا زدن صفحات html دیگر در یک صفحه html وجود دارد؟

masima

Member
سلام
من به تازگی میخواهم سایت full Ajax (صفحات کاملا به صورت html ) طراحی کنم ولی یک مشکل دارم. برای کاهش حجم کدنویسی میخواهم بعضی قسمت های ثابت در صفحه مثل هدر و فوتر را در یک صفحه بنویسم و آن ها را در صفحات دیگر صدا بزنم ولی نمیدانم چگونه با کدهای html این کار را بکنم.
قبلا که صفحاتم به صورت php بود تنها کاری باید انجام میدام نوشتن کد زیر بود :
include("page1.php");
ولی حالا باید چه کرد؟
لطفا اگه کسی میدونه راهنماییشو دریغ نکنه. سپاسگزارم
 

eAmin

Well-Known Member
سلام
این راه بیشتر در سمت سرور استفاده میشه و راه مانسبی هم هست، ولی در سمت کلاینت این وضع فرق میکنه چون شما دارید درخواست جداگانه ای توسط Ajax به سرور ارسال میکنید و همین باعث میشه سرعت و کارایی سایت شما پایین بیاد.

مثلن شما میخواید دوصفحه هدر و فوتر رو لود کنید اونوقت توسط Ajax دو درخواست به سرور ارسال شده و این فرقی با اینکه به صورت معمولی بارگزاری بشه نمیکنه، حتی به مراتب از حالت معمولی هم بدتره! با اینکار شاید بتونید کد نویسی خودتون رو کمتر کنید ولی سرعت و کارایی وبسایت شما افت پیدا میکنه.
 

masima

Member
سپاسگزارم
یک سوال: وقتی ما با اجکس کار میکنیم کل صفحه که در حال ارتباط دائم با سرور نیست (مثل وقتی میخواهیم در سایت یاهو ... ایمیل درست کنیم، تنها یک کد کوچک مبنی بر تکراری بودن نام کاربری به سرور فرستاده میشه و جوابش هم خیلی سریع میاد و اصلا تمام صفحه دوباره لود نمیشه که! )
من هم نمیخوام که قسمت هدر و فوتر را در این کد اجکس بگذارم! من میخوام این دو قسمت مثل بقیه قسمت های html صفحه که ثابت هستند باشد. با این تفاوت که به جای نوشتن تمام اجزای html این دو صفحه با یک کد کوچک ( اصل سوالم همین کد کوچک است، مثل کدی که برای لینک کردن فایل css به کار میبریم ، آیا میتوان یک فایل html را به صفحه لینک کنیم یا نه؟ ) آن را بنویسم.
دوم اینکه شما با دلایل خودتون گفتید این کار خوبی نیست و کارایی را پایین میاره ولی نگفتید چه طور این کار را انجام بدم؟؟!! آیا راهی وجود دارد و اگر آره چطوری؟

خیلی خیلی ممنون میشم اگه پاسخی بگذارید ....
 
آخرین ویرایش:

Milad

Well-Known Member
با اجازه استاد .

اینجور که من فهمیدم صفحاتت دارای یک قالب ثابت هست با محتوای مختلف درسته ؟ اگه اینطور هست باید کاری که میخوای رو برعکس انجام بدی یعنی یک صفحه تعریف کنی که هدر و فوتر رو داشته باشه و با کلیک روی لینک صفحات مختلف به جای رفتن به اون صفحه محتواشون رو که فاقد هدر و فوتر هست رو در همین صفحه بارگذاری کنی .

با jQuery میتونی این کار رو به راحتی انجام بدی .

کد:
$('.selector').load('page.html');
selector تگی هست که محتوای صفحات دیگرت توی اون قرار میگیره .
 

farik

Well-Known Member
باسلام..
با جاوا اسکریپت هم به راحتی اینکار رو میتونین انجام بدید:
کد:
document.getElementById("DivId").innetHTML="text";
من متوجه نمیشم..فلسفه ایجکساینه که شما قسمت های صفحه رو دوباره لود نکنین..و این کارتون کل این فلسفه رو زیر سوال میبره...شما اطلاعاتی که میخواین عوض بشن رو میریزین تو یک دایو و اونو عوض میکنین همش..
اما اگه بازم خواستین که هدر و فوتر رو عوض کنین باید مثل یک صفحه عادی یک درخواست بفرستین به header.php و درخواست رو در تگی که اون قرار داره چاپ کنین...
موفق باشید...
 

masima

Member
سلام و سپاس
دوست عزیز Milad
اونجور که من متوجه شدم هیچ کدی در html وجود ندارد که به من کمک کند و باید از زبان های دیگر استفاده کنیم.

[
اینجور که من فهمیدم صفحاتت دارای یک قالب ثابت هست با محتوای مختلف درسته ؟
بله تقریبا همین جوره ولی نه کاملا .

با jQuery میتونی این کار رو به راحتی انجام بدی .

کد:
$('.selector').load('page.html');
selector تگی هست که محتوای صفحات دیگرت توی اون قرار میگیره .
من اصلا با jQuery آشنا نیستم، این کد باید داخل چه تگی قرار بدم مثل جاوا اسکریپت یا نه؟
دوم اینکه من با Dream Weaver کار میکنم و این کتابخانه را آیا باید دانلود کنم یا خودش داره ؟ چون همونجور که گفتید عمل کردم و selector را id یک div گذاشتم ولی اصلا هیچ اتفاقی نیوفتاد

کد:
<script>
$('viewContents').load(page1.html');
</script>
------------------------------------------------------------------------------------------------------------
دوست عزیز farik
من متوجه نمیشم..فلسفه ایجکساینه که شما قسمت های صفحه رو دوباره لود نکنین..و این کارتون کل این فلسفه رو زیر سوال میبره...
اگه بازم خواستین که هدر و فوتر رو عوض کنین
!!!!!!!!!!!!!

منم متوجه نمیشم ! من قبلا گفتم که این کار رو نمیخوام انجام بدم!
من هم نمیخوام که قسمت هدر و فوتر را در این کد اجکس بگذارم! من میخوام این دو قسمت مثل بقیه قسمت های html صفحه که ثابت هستند باشد. با این تفاوت که به جای نوشتن تمام اجزای html این دو صفحه با یک کد کوچک ( اصل سوالم همین کد کوچک است، مثل کدی که برای لینک کردن فایل css به کار میبریم ، آیا میتوان یک فایل html را به صفحه لینک کنیم یا نه؟ ) آن را بنویسم.
من زیاد جاوا اسکریپت کار نکردم! برای همین توضیحاتتون کمی برام مبهم بود
باید مثل یک صفحه عادی یک درخواست بفرستین به header.php و درخواست رو در تگی که اون قرار داره چاپ کنین...
--------------------------------------------------------------------------------------------------------------------
روی هم رفته انگاری یا باید جاوا اسکریپت یاد بگیرم و یا jQuery . در حالی که من فقط به خاطر کم شدن حجم کدهایم دنبال یک کد فسقلی از نوع html بودم که اونم نیست....
فکر میکنم بهتره مثل روش عادی بنویسم و بی خیال شم.

با سپاس فراوان از اینکه وقت گذاشتید عزیزان....


 

جدیدترین ارسال ها

بالا