رفتن به مطلب

سارا-افشار

ارسال های توصیه شده

سایتی مثل انجمن نواندیشان را در نظر بگیرید (جدای از عنوانش بیس اکثر فروم های ایرانی بر روی یک پلتفرم ساخته شده است -->VBulletin )

در این سایتها در هر لحظه داده های پیچیده زیادی بین مرورگر شما و سرور سایت رد و بدل می شود

معمولا به سه روش داده ها بین سرور و کلاینت رد و بدل می شود و یا در سمت سرور یا کلاینت ذخیره می شود

 

 

  • روش اول به شکل پارامتریک (نگاهی به آدرس انجمن نواندیشان بیاندازید پارامترها معمولا بعد از علامت سوال انتقال پیدا می کنند )

مثلا همین حالا آدرسی که من مشاهده می کنیم به این صورته :

این آدرس دو پارامتر به سمت سرور منتقل می کند

پارامتری بنام do که دارای مقداری بنام newthread هست

و پارامتر دیگری با نام f با مقدار عددی 749

 

این داده ها در سمت سرور توسط کنترلگری دریافت شده و رندر می شود در جاوا معمولا از سرولت (servlet) ها برای گرفتن و رندر کردن دادها استفاده می شود هرچند از صفحات jsp هم می توان برای دریافت داده ها استفاده کرد

در یک سرولت / صفحه jsp برای گرفتن داده های پاس داده شده از سمت مرورگر از دستور زیر استفاده می شود

 


request.getParameter("");


در داخل دابل کوتیشن نام پارامتر رو می آوریم مثلا نام پارامتر do یا f رو برای این صفحه نواندیشان (البته توجه داشته باشید نواندیشان با php نوشته شده نه جاوا ولی من برای روشن شدن موضوع این مثال رو اینجا آوردم )

 

request نام شیی از نوع HttpServletRequest هستش که در تمامی صفحات jsp از قبل ساخته و تعبیه شده ولی در صفحات سرولتی با ارث بری کلاس جاوایی از کلاس HttpServlet ساخته می شود

 

توجه : اگر علاقه مند به یادگیری سرولت نویسی هستید بهترین مرجع آموزشی این سایت هست :

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

اما مواقعی هست که داده های زیادی باید بین سرور و کلاینت رد و بدل شود در این حالت دو روش در حال حاضر زیاد استفاده می شود

 

 

 

  • روش xmlی
  • روش Jsonی

 

روش xmlی به علت اینکه باید عمل تبدیل داده ها به فایل های xml ی و سریالایز کردن و در مقصد بیرون کشیدن داده ها از داخل فایل xmlی (عمل پارسینگ ) و خوابوندن اونا روی یک object عمل زمانبری هست کم کم کنار گذاشته می شود اما در حالت کلی برای انتقال داده ها به صورت xmlی به صورت زیر عمل می شود :

  1. مشخص کردن نوع مرورگر کاربر (مرورگرهای مختلف رفتارهای متفاوتی در مقابل اسناد xmlی از خود نشان میدهند )
  2. بیرون کشیدن داده های موجود در یک صفحه وبی که لازم هست از سمت کلاینت به سمت سرور منتقل شود (مثلا فرض کنید شما یک فرم ثبت نام دارید که دارای فیلدهای نام ، نام خانوادگی و... هست و شما به عنوان کاربر این فیلدها رو پرکردید وقتی روی دکمه ثبت نام کلیک می کنید این داده ها ابتدا باید روی یک فایل xmlی سازمان دهی شود )
  3. ساختن یک فایل xmlی و قراردادن این داده ها در اون فایل
  4. ارسال فایل به سمت سرور
  5. عمل پارسینگ جهت بیرون کشیدن داده های موردنیاز از داخل فایل xmlی که معمولا برای این روش از xpath استفاده می شود

توجه :اگر علاقه مند به یادگیری بیشتر در مورد xpath هستید این سایت مرجع عالیی هست:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

اما روش jsonی خیلی ساده و سرراست هست و بخاطر همین روز به روز بر میزان محبوبیت این روش و استفاده از آن در سایت های تجاری مختلف افزوده می شود فرض کنید صفحه وبی دارید که قرار است مدام و هر 3 ثانیه یک بار یه جدول حاوی قیمتهای سهام یک بازار بورس رو به روز کند مطمنا روش xmlی روش سریعتری نخواهد بود و json گزینه بهتری برای اینکار هست .

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

 

توجه : معمولا روش ارسال داده ها چه داده ها در قالب xml باشد چه json از روش Ajax استفاده می شود

 

در آینده سعی می کنیم همه اینها رو به صورت عملی با مورد کاربرد واقعی نشان دهم :w16:

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...