PDA

View Full Version : سوال: منطق و نحوه طراحی صفحات وب



rastac
سه شنبه 28 خرداد 1392, 11:18 صبح
سلام به همه دوستان
یه سوال در مورد نحوه طراحی صفحات دارم که به جواب نمی رسم.
در طراحی صفحات وب قاعدتا باید برای هر صفحه ای که طراحی منحصر به فرد نسبت به سایر صفحات داره باید از html منحصر به فرد استفاده بشه.مثلا اگر در سایت ما 10 صفحه وجود داره که طراحی شمایل کلی اونها با هم متفاوته (بجز برخی مشابهت ها) باید 10 فایل html مجزا طراحی بشه که قاعدتا هر کروم از اونها اسم مربوط به خودشون رو دارن(a.html , b.html , c.html و ...)
اما بسیاری از سایتها رو دیدم که با این که صفحات مختلف دارن، url اونها فقط اسم یک صفحه رو نشون میده با این تفاوت که برای هر صفحه مقادیر متفاوت ارسال میشه:
www.example.com/index.php?page=x&code=35&id=54 (http://www.example.com/index.php?page=x&code=35&id=54)
www.example.com/index.php?page=y&code=20&id=65 (http://www.example.com/index.php?page=y&code=20&id=65)
www.example.com/index.php?page=z&code=74&id=28 (http://www.example.com/index.php?page=z&code=74&id=28)

همون طور که می بینید فقط صفحه index.php وجود داره که مقادیر مختلف به اون ارسال میشه.
حالا سوال اینه که :
1) اگر هر صفحه طراحی مجزا داشته باشه چطور هر کدام از اونها در همون صفحه index.php نمایش داده میشن
2) آیا میشه گفت که در صفحه index.php فقط بخشهای مشترک همه صفحات قرار داره (مثل پنل هدر و فوتر و پنل های کناری)و سایر بخشهای منحصر به فرد هر صفحه متناسب با مقادیر ارسالی از جای دیگه خونده میشه ؟ اگر اینطوره دقیقا از کجا؟
به خصوص که هر صفحه می تونه دارای html متفاوت باشه و این طراحی متفاوت هر صفحه در کجا ذخیره میشه؟ آیا در فایل های جداگانه قرار داره که به این صفحه include میشه یا در دیتابیس ذخیره میشه ؟ و اگر اینطوره چطور میشه html در دیتا بیس ذخیره کرد؟

3) در هر حال دلیل و مزیت این مدل طراحی نسبت به طراحی جداگانه هر صفحه با نام انحصاری خودش در چیه؟آیا در امنیت تاثیر داره و چگونه؟

ممنون میشم اگه بتونین راهنمایی کنین

omidabedi
سه شنبه 28 خرداد 1392, 12:31 عصر
عزیزم اگر با برنامه نویسی php اشنایی داشته باشی میفهمی چجوری
در php اطلاعات در دیتابیس ذخیره میشه و لازم نیست واسه هر کدومشون یک صفحه جداگانه درست کرد
با php میتونی صفحه ای رو تولید کنی بر اساس یک سری قوانین
مثلا میگی اگر url اینجوری (sample.com/user_post:search_r) یه صفحه بساز که درون اون نتایج جستجو در پست کاربران رو نشون بده
طراح که نمیاد 500تا صفحه برای همه ی حالات ممکن درست کنه که

AbiriAmir
سه شنبه 28 خرداد 1392, 15:23 عصر
1) اگر هر صفحه طراحی مجزا داشته باشه چطور هر کدام از اونها در همون صفحه index.php نمایش داده میشن
روش های مختلفی میتونه وجود داشته باشه مثل الگوی MVC ، استفاده از کلاس قالب و یا خیلی ساده تر از اون ها include کردن فایل ها متناسب با پارامتر های دریافتی


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


به خصوص که هر صفحه می تونه دارای html متفاوت باشه و این طراحی متفاوت هر صفحه در کجا ذخیره میشه؟ آیا در فایل های جداگانه قرار داره که به این صفحه include میشه یا در دیتابیس ذخیره میشه ؟ و اگر اینطوره چطور میشه html در دیتا بیس ذخیره کرد؟

میتونه تو 1 فولدر جدا مثلا template ذخیره بشه یا هرجای دیگه. include هم میتونه بشه. میتونه هم نشه!
از دیتابیس هم میشه استفاده کرد اما در سایت های عادی توصیه نمیشه.
استفاده از دیتابیس برای قالب به درد سیستم های وبلاگ دهی میخوره که هر کاربر قالب مخصوص خودش رو داره.
در سایر موارد استفاده از دیتابیس برای قالب بار اضافی به سرور تحمیل میکنه.
html هم به سادگی میشه در دیتابیس ذخیره کرد! کافیه فیلد رو از نوع text یا انواع اون بذارید و هیچ مشکلی وجود نداره.


3) در هر حال دلیل و مزیت این مدل طراحی نسبت به طراحی جداگانه هر صفحه با نام انحصاری خودش در چیه؟آیا در امنیت تاثیر داره و چگونه؟

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

موفق باشید

abbas_ali
سه شنبه 28 خرداد 1392, 18:02 عصر
سلام،
به اونا میگن query string که با $_GET میشه گرفت مقدارش رو و چک کرد که هست یا نه و شرط گذاشت....

rastac
سه شنبه 28 خرداد 1392, 19:41 عصر
روش های مختلفی میتونه وجود داشته باشه مثل الگوی MVC ، استفاده از کلاس قالب و یا خیلی ساده تر از اون ها include کردن فایل ها متناسب با پارامتر های دریافتی


بستگی داره چه مدل برنامه نویسی انجام شده باشه.
خیلی ممنون از توضیحت امیر جان
گفتی روشهای مختلفی وجود داره .در مورد الگوی mvc که گفتی آشنایی ندارم. اما اگه بتونی در مورد سایر روشها یه کم توضیح بدی ممنون می شم.
یکی از دوستان گفت که برنامه نویس برای همه مثلا 200 صفحه سایت html جداگانه طراحی نمی کنه که البته من هم موافقم. اون چیزی که توی ذهن منه اینه که همه صفحات اصلی (که html مشترک اما محتوای متفاوت دارن و محتواها ی مختلف از دیتا بیس گرفته میشه) بطور جداگانه طراحی میشن و متناسب با مقداری که به صفحه مادر ارسال میشه ، هر کدوم از این صفحات به صفحه مادر include میشن.
سوال اینه که ایا استفاده از این روش منطقیه؟ و مهمتر این که باعث نمی شه که بار اضافی به سرور تحمیل بشه چون طبق این روش همه صفحات مقادیرشون رو از دیتابیس می گیرن.

2 سایتی که به نظرم در طراحی متفاوت میان digikala.com و final.ir هستن. در digikala.com انگار یک صفحه وجود داره و مقادیر از دیتا بیس گرفته میشه . اما در final.ir به نظر میاد هر صفحه بطور مجزا طراحی شده چون دارای url منحصر به فرده.
میخام بدونم آیا روشی که خودم گفتم درست و منطقیه و ثانیا اگر در 2 سایتی که نام بردم تفاوت به اون شکلی که گفتم وجود داره، کدوم روش درست و منطقیه؟

ممنون

MRmoon
سه شنبه 28 خرداد 1392, 19:54 عصر
دوست عزيز چيزي به نام htaccess كه ميشه نام فايل وارد شده رو query string هاي يك صفحه تبديل كرد.

rastac
سه شنبه 28 خرداد 1392, 20:15 عصر
دوست عزيز چيزي به نام htaccess كه ميشه نام فايل وارد شده رو query string هاي يك صفحه تبديل كرد.
میشه بیشتر توضیح بدی . آشنایی ندارم

مهرداد سیف زاده
سه شنبه 28 خرداد 1392, 20:28 عصر
فایل htaccess یکی از امکانات خوب وب‌سرور آپاچی هست. شما در این فایل میتونید تعدادی دستور بنویسید که کارهای جالبی مثل url friendly برای شما انجام بده مثلا در حالت عادی شما سایتی درست کردی که منوی مقالات و شاخه مقالات کامپیوتر رو بصورت زیر در صفحه index.php دریافت میکنه آدرس url شما قبل از بکار بردن htaccess بصورت زیر هست

http://mysite.ir/index.php?page=article&category=computer

حالا با نوشتن دستورات در htaccess آدرس url شما بصورت زیر میتونه در بیاد:

http://mysite/article/computer

برای اطلاعات بیشتر یه جستجو در تالار بزنید. آقای رضا قربانی آموزش بسیار خوبی در این زمینه توی تالار گذاشتن.

AbiriAmir
چهارشنبه 29 خرداد 1392, 22:37 عصر
خیلی ممنون از توضیحت امیر جان
گفتی روشهای مختلفی وجود داره .در مورد الگوی mvc که گفتی آشنایی ندارم. اما اگه بتونی در مورد سایر روشها یه کم توضیح بدی ممنون می شم.
یکی از دوستان گفت که برنامه نویس برای همه مثلا 200 صفحه سایت html جداگانه طراحی نمی کنه که البته من هم موافقم. اون چیزی که توی ذهن منه اینه که همه صفحات اصلی (که html مشترک اما محتوای متفاوت دارن و محتواها ی مختلف از دیتا بیس گرفته میشه) بطور جداگانه طراحی میشن و متناسب با مقداری که به صفحه مادر ارسال میشه ، هر کدوم از این صفحات به صفحه مادر include میشن.
سوال اینه که ایا استفاده از این روش منطقیه؟ و مهمتر این که باعث نمی شه که بار اضافی به سرور تحمیل بشه چون طبق این روش همه صفحات مقادیرشون رو از دیتابیس می گیرن.

2 سایتی که به نظرم در طراحی متفاوت میان digikala.com و final.ir هستن. در digikala.com انگار یک صفحه وجود داره و مقادیر از دیتا بیس گرفته میشه . اما در final.ir به نظر میاد هر صفحه بطور مجزا طراحی شده چون دارای url منحصر به فرده.
میخام بدونم آیا روشی که خودم گفتم درست و منطقیه و ثانیا اگر در 2 سایتی که نام بردم تفاوت به اون شکلی که گفتم وجود داره، کدوم روش درست و منطقیه؟

ممنون

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

ضمنا url مستقل داشتن همیشه معنیش این نیست که صفحه جداست چون این url ها رو میشه به صورت مجازی پیاده سازی کرد به طوری که مثلا آدرس site.com/post/1 میتونه صفحه site.com/index.php?post=1 باشه که url به اون صورت یا هر شکل دیگری در اومده

پس از روی url قضاوت نکنید چون همیشه درست نیست