از من درخواست شده بود که در باره ی متغیرهای Session بنویسم. از آن جایی که بین متغیر های Session و Client و تشابه هایی وجود دارد، آن ها را در یک مقاله توضیح می دهم.
1- متغیرهای Client
متغیرهای Client به جای اینکه در سیستم کاربر ذخیره گردد، در سرور Coldfusion ذخیره می گردند. متغیرهای Client با مرورگر کاربر یک جفت تشکیل می دهند و برای هر مرورگر یک Client.MyVar وجود دارد. برای این که سرور کلدفیوژن بتواند تشخیص بدهد که کدام متغیر Client مربوط به کدام مرورگر می باشد، از یک جفت متغیر CFID و CFTOKEN استفاده می کند. بعدا در باره ی این دو متغیر بحث خواهیم کرد.
برای تنظیم حداکثر مدت زمان باقی ماندن متغیرهای Client، از Administrator کلدفیوژن استفاده می شود. مقدار پیش فرض 90 روز می باشد. شما می توانید این مقدار تا یک روز پایین بیاورید. اگر از متغیرهای مربوط به CFID و CFTOKEN خاصی ، در این مدت زمان استفاده نگردد، متغیرهای مربوط به آن از روی سرور پاک می گردد.
برای استفاده از متغیرهای Client، ابتدا باید با استفاده از cfapplication، مقدار clientManagement را true کنید. به این صورت :
<cfapplication clientManagement=”true” … >
سپس، برای ایجاد متغیرهای Client از CFSet و یا CFParam به صورت زیر استفاده کنید :
<CFSet Client.MyVar=1>
<CFParam name=”Client.MyVar” default=”1”>
یکی از کاربردهای جالب متغیرهای Client، متغیر Client.LastVisit می باشد که خود به خود ایجاد می گردد و مقدار آن خود به خود به روز می گردد و دارای مقدار تاریخ آخرین روزی است که وب سایت جاری توسط یک مرورگر در خواست شده است. برای استفاده از این متغیر، به مثال زیر توجه کنید :
<CFOUTPUT>
Welcome back to the Web
SuperShop, your last visit
was on #DateFormat(Client.LastVisit)#.
</CFOUTPUT>
برای حذف کردن یک متغیر Client، از تابع DeleteClientVariable() به صورت زیر استفاده کنید :
<cfset result=DeleteClientVariable(“MyVar”)>
2- متغیر های Session
متغیرهای Session در RAM سیستمی که سرور کلدفیوژن در آن اجرا می شود ذخیره می گردند و مانند متغیرهای Client برای هر مرورگر مجزایی متغیرهای Session مجزا ایجاد می شوند و این متغیرها نیز، توسط متغیرهای CFToken و CFID از هم باز شناخته می شوند.
تفاوت های بین متغیرهای Client و متغیرهای Session عبارت است از :
· متغیرهای session قادر به ذخیره سازی انواع داده ی پیچیده مانند Structure ها و آرایه ها می باشند، ولی متغیر های Client تنها قادر به ذخیره سازی داده های ساده مانند رشته های متنی و اعداد می باشند.
· متغیرهای session نیاز به استفاده از CFLock می باشند ولی متغیر های Client نیازی به استفاده از CFLock ندارند. (بعدا در این مقاله استفاده از CFLock را شرح خواهم داد.)
· مدت عمر متغیرهای کمتر از مدت عمر متغیرهای Client می باشد.
· اگر سرور Coldfusion را از نو راه اندازی کنیم، متغیرهای Session از بین خواهند رفت ولی متغیر های Client هم چنان باقی خواهند ماند.
· متغیرهای Session از لحاظ فضای اشغالی هیچ محدودیتی ندارند در حالی که متغیرهای Client به 32 کیلوبایت محدود هستند.
برای استفاده از متغیرهای Session، ابتدا باید SessionManagement را به صورت زیر “true” کنیم :
<cfapplication sessionManagement=”true” … >
اگر می خواهید مقدار پیش فرض مدت عمر متغیرهای Session را تغیر دهید، مقدار SessionTimeout را به روش زیر تغییر دهید :
<cfapplication sessionmanagement=”true” sessiontimeout=”#CreateTimeSpan(0,0,20,0)#” …>
مثلا مثال بالا حداکثر مدت طول عمر متغیر های از نوع Session را برابر 20 دقیقه قرار می دهد. ( در تابع CreateTimeSpan، پارامتر اول تعداد روزها، پارامتر دوم، ساعات، پارامتر سوم، دقیقه ها و پارامتر آخر ثانیه ها می باشند.)
برای حذف یک متغیر Session از تابع StructDelete به روش زیر استفاده کنید :
<cfset Result=StructDelete(Session,”MyVar”)>
برای حذف تمام متغیرهای Session، از cfapplication به روش زیر استفاده کنید :
<cfapplication sessiontimeout=”#CreateTimeSpan(0,0,0,0)#” …>
متغیرهای Session در حافظه ی سرور کلدفیوژن ذخیره می گردند و کاربرهای مختلف ممکن است خواهان دسترسی به آن ها در یک زمان خاصی باشند. برای اینکه در مدیریت حافظه اختلال به وجود نیاید، باید هنگام خواندن مقدار و یا مقدار دهی این متغیرها استفاده از حافظه را به یک کاربر خاص محدود کرد و پس از آن که این کاربر خاص کار بر روی مقادیر متغیرها را تمام کرد، نوبت به کاربر دیگر می رسد.
برای این کار، از cflock استفاده می کنیم. برای مقدار دهی به متغیرهای session، از cflock به صورت زیر استفاده می کنیم :
<CFLock name=”Session_MyVar”
type=”Exclusive”
timeout=”10”
throwOnTimeOut=”Yes”>
<CFSet Session.MyVar=”1”>
</CFLock>
برای خواندن مقدار یک متغیر session از cflock به صورت زیر استفاده می کنیم :
<CFLock name=”Session_MyVar”
type=”READONLY”
timeout=”10”
throwOnTimeOut=”Yes”>
<CFSet Variables.MyVar=Session.MyVar>
</CFLock>
آخرین مقالات طراحی سایت
- فایروال ها چگونه کار می کنند؟
- همه چیز در مورد PageRank گوگل
- روند زندگی یک دامنه
- معرفی انواع دامنه اینترنتی (Domain)
- مالتی مديا چیست؟
- هاست چیست ؟
- دامین چیست؟
- 10 دلیل برتر برای خرید دامنه Tel.
- Disabling the Image Toolbar in IE 6 for Your Site
- Two Common Web Design Myths
- How to Add Background Music to Your Web Page
- How to Set Up A Custom 404 File Not Found Page
- Should I Display an Email Address on My Site or Use a Contact Form?
- 6 Things to Note Before Changing Your Site Design
- What's The Difference Between Liquid, Elastic, Relative, Fluid, Flexible and Fixed Layouts?
- What Sort of Website Should I Create In Order to Earn Money?
- 10 اشتباه نابخشودنی تبلیغات اینترنتی
- چرا ظاهر یک سایت به اندازه برنامه نویسی آن با اهمیت است؟
- مزایای تجارت الکترونیک نسبت به تجارت سنتی
- Starting an Online Business Directory - A Great Way to Get Links
دانلود رایگان کتابهای طراحی سایت
- Developers Guide to Web Application Security
- HTML and XML for Beginners
- PHP 5 in Practice
- Expert SQL Server 2008 Development
- Implementing SOA Using Java EE
- Creating Cool Web Sites With HTML, XHTML, And CSS
- Foundation Joomla!
- Web Design for Developers
- Joomla! with Flash
- WordPress MU 2.8: Beginner's Guide
- The Art and Science of Web Design
- Neuro Web Design: What Makes Them Click?
- Build Your Own ASP.NET 2.0 Web Site Using C# & VB
- Visual Design for the Modern Web
- The Web Startup Success Guide
- Building Social Web Applications
- Ajax for Web Application Developers
- HTML, XHTML, and CSS, Sixth Edition
- Professional ASP.NET 2.0 AJAX
- ASP.NET AJAX in Action

