PDA

View Full Version : سوال: بهترین متد برای ذخیره و دسترسی به تنظیمات یک وب سایت



فؤاد
جمعه 03 آبان 1387, 15:02 عصر
سلام

طبیعتا تو هر پروژه یک سری متغیرها وجود دارند که میشه از اونها به عنوان Configuration یاد برد.
بطور مثال اگر بخواهید نحوه نمایش ساعت / تاریخ / زبان سایت و از این قبیل تنظیمات رو توسط مدیر سایت تعریف و تنظیم کنید / به نظر شما بهترین راه برای ذخیره و بازیابی این متغیرها چیه ؟

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

اگه روش بهتری از این روش (ذخیره تنظیمات در دیتابیس) سراغ دارین که ادمین بتونه براحتی تنظیمات وب سایتشو عوض کنه بگید.

متشکرم

kashaneh
شنبه 04 آبان 1387, 00:35 صبح
لازم نيست در صورت استفاده از ديتابيس حتما در تمام صفحات به اون ديتابيس متصل بشيم. شما كافيه در زمانيكه يك كاربر سايت وارد سايت ميشه (Session_OnStart) به بانك متصل شويد و مقادير تنظيمات رو بازخواني كنيد و ارتباط رو قطع كنيد و اين مقادير رو با استفاده از از Session ها براي كاربر حفظ كنيد و به اين ترتيب تا زمانيكه كاربر در حال استفاده از سايت مي باشد از طريق فذراخواني Saession مورد نظر تنظيمات نيز در دسترس شما خواهند بود. نكته مهم در اينجا فقط بحث طول عمر Session مي باشد كه بايد در مورد آن دقت لازم رو داشته باشين.
كد نمونه هنگاو ورود كاربر به سايت :


Sub Session_OnStart

Session.Timeout = 10
// كدهاي اتصال به بانك و خواندن مقادير و ذخيره آنها در متغير از نوع Session

End Subكد نمونه هنگام خروج كاربر از سايت :


Sub Session_OnEnd

// نابود كردن كليه مقادير Session كاربر با استفاده از Session.Abandon

End Sub

روش دوم شما استفاده از متغيرهاي Application مي باشد كه با توجه به اينكه نوع تنظيمات شما ممكن است تغيير داشته باشد، زياد مورد توصيه نيست چون اين مقادير تنها در حالت ريست سرور بار ديگر مقادير خودرا از بانك اطلاعاتي خواهند گرفت و به اين ترتيب مناسب نيستند.

*** نكته مهم اينكه كدهاي نمونه فوق را بايد در بين دستورات زير ذكر كرده و اون صفحه رو با نام Global.asa ذخيره كرده و در شاخه root سرور بريزين.


<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
...
...
...
</SCRIPT>

فؤاد
شنبه 04 آبان 1387, 00:44 صبح
ممنونم ولی احتمال میدم شما درست متوجه سوال من نشدین

من بنا ندارم برای هر کاربر تنظیمات جداگانه داشته باشم / میخام برای کل برنامه سایتم یه بخش تنظیمات داشته باشم که از اونجا بتونم تنظیمات رو مدیریت کنم

راه دیگه ای که غیر از دیتا بیس وجود داره ذخیره مقادیر در یک فایل ASP هست و Include کردن آن در تمامی صفحات برنامه

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

kashaneh
شنبه 04 آبان 1387, 22:28 عصر
روش مورد نظر شما يعني استفاده از فايل هم مناسب است. شما درست ميگين اگه يك تنظيمات يكساني براي همه كاربران دارين راهكار مناسبيه اما همونطور كه اشاره كردين موقع ويرايش اين تنظيمات دردسر خواهيد داشت و بهتره كه از همون بانك اطلاعاتي براي نگهداري اين تنظيمات استفاده كنيد و طبق روشي كه قبلا براتون گفتم مي تونيد عمل كنيد.
** نكته مهم اينكه كاركردن با بانك اطلاعاتي بسيار بهينه تر از يك فايل مي باشد. پس مطمئن باشيد ميزان بهره كشي از منابع به بهره برداري از آنها در بانك هاي اطلاعاتي بهبودهاي به مراتب بهتري نسبت به يك فايل دارد.
*** نكته بعدي اينكه در روشي كه ذكر كردم تنها يكبار براي هر كاربر به بانك متصل و تنظيمات را در Session قرار مي دهيد در حاليكه در روش مورد نظر شما به ازاي هر صفحه بايد يك فايل خارجي به صفحه Include كنيد كه حجم كاري بسيار بيشتري خواهد داشت و كندي اجراي صفحات حداقل عوارض آن خواهد بود.

فؤاد
یک شنبه 05 آبان 1387, 17:16 عصر
استفاده از XML چطوره ؟ از دوستان کسی راه حل بهتری سراغ نداره ؟

kashaneh
پنج شنبه 09 آبان 1387, 23:54 عصر
دوست عزيز استفاده از session و Aplication به همين منظور در asp بوجود آمدند تا در صورت نياز به يك انباره موقت براي نگهداري مقادير از آنها استفاده شود. استفاده از xml يا بانك اطلاعاتي مورد نظر نيست!!! مورد نظر سوال شما نحوه دسترسي به محتويات فايل نگهدارنده تنظيمات است خواه بانك اكسس باشد يا فايل XML يا يك فايل متني...