PDA

View Full Version : سوال: نوشتن تابع JavaScript در Code Behind



araelectronic@ymail.com
یک شنبه 17 بهمن 1389, 00:39 صبح
با سلام
من میخوام یه تابعی بنویسم که سمت کلاینت اجرا بشه وهم اینکه درصورتیکه view source صفحه را اگر زدند دیده نشه. چیزی که به فکرم رسید این هست که تابع java را در code behind بنویسم . ولی نمیدونم که چطور میشه این کار را انجام داد . دوستان لطفا راهنمایی کنند .
با تشکر

Javad_Darvish_Amiry
یک شنبه 17 بهمن 1389, 01:39 صبح
خوب دوست عزیز امکان این که کد جاوا اسکریپت سمت کلاینت دیده نشه عملا وجود نداره. شما سمت کد بیهایند هم که بنویسید کد جاوا اسکریپتتون رو نمیتونید بنویسید؛ بلکه فقط میتونید جاوا اسکریپت رو از سمت بیهایند به صفحه رجیستر کنید که باز به کلاینت فرستاده میشه و اونجا قابل دیدن هستش. دو سری نرم افزار ها میتونن یه خورده کمکتون کنن. اولی جاوا اسکریپت اسکرامبلر هستش (اگه تلفظشو درست نوشته باشم-دوستان کمک کنند) که اسکریپت رو فشرده میکنه و اسم متغیر ها رو هم تغییر داده و کوتاه میکنه. مثلا فانکشن الف رو به فانکشن ب تبدیل میکنه:



فانکشن
function getMyElement(sourceElement, targetElement, textValues){
var firstSourceElement = document.getElementById(sourceElement);
var firstValue = firstSourceElement.value;
//// etc.
}
فانکشن ب
function _g1(p1,p2,p3){_a1=document.getElementById(p1);_a2= _a1.value;/*other codes goes here...*/}

این روش یه کم خوندن کد سمت کلاینت رو سخت میکنه. اما نه غیر ممکن. فقط برای فشرده سازی مفیده. ابزار دوم جاوا اسکریپت پکیجر هستش که کل کد رو تبدیل به یه رشته طولانی و مطابق با یه سری قواعد رگولار اکسپرشن میکنه و یه تابع اصلی وجود داره که استرینگ حاصله رو زمان اجرا دوباره eval کرده و کد اجرا میشه. این روش محافظه کارانه تر هستش. اما در هر صورت همونطور که ابزار هایی برای پکیج کردن هستن ابزارهایی هم برای آنپک کردن وجود دارن.
این دو روش استاندارد هستن. اما منظور شما رو کامل برآورده نمیکنن. یه سری ابزار غیراستاندارد هم هستن. مثلا IE ابزاری برای اینکار داره که کد جاوا اسکریپت کاملا رمزنگاری میشه و غیرقابل خوندنه. اما اون کد فقط تو IE که تازه اون پلاگین رو داشته باشه اجرا میشه. (فکر کنم فایرفاکس هم پلاگین مشابهی مخصوص خودش داشته باشه). اما خوب این روش ها استاندارد نبوده و درصد زیادی از کاربران تو مواجهه با صفحه شما دچار مشکل میشن.
من آدرس دقیقی ندارم که بهتون بدم. اما تو نت سرچ کنید ابزار های آنلاین و رایگان زیادی که دو روش اول رو براتون انجام بدن پیدا میکنید. (آنلاین هستن و نیاز به دانلود نرم افزار نیست. کد رو آپلود میکنید و نتیجه رو دریافت میکنید). موفق باشید.

alonemm
یک شنبه 17 بهمن 1389, 12:22 عصر
سلام برای درست کردن این اسکریپت در سمت سرور:


string strS;
strS = "<SCRIPT language='javascript'>document.getElementById('" + txtSerial + "').focus() </SCRIPT>";
Page.RegisterStartupScript("focus", strS);

araelectronic@ymail.com
یک شنبه 17 بهمن 1389, 12:51 عصر
با تشکر از پاسختون . من در برنامه از کارت مغناطیسی استفاده کردم که داخلش یکسری کد وارد شده میخوام وقتی کارتو کشید صحت اونو چک کنم که آیا کارت معتبر هست یا نه ؟ و الگوریتم کد کارت را نمیخوام مشتری بدونه پس با توجه به توضیحات داده شده مجبورم که سمت سرور بنویسم ؟ یا راه دیگری هست که سمت کلاینت اجرا بشه ؟ با تشکر

مهدی کرامتی
یک شنبه 17 بهمن 1389, 14:52 عصر
اون وقت در یک صفحه وب چطور می خواهید با استفاده از دستگاه کارت خوان مشخصات کارت را بخوانید؟!

araelectronic@ymail.com
یک شنبه 17 بهمن 1389, 15:17 عصر
از کارتخوان مغناطیسی استفاده میکنم که روی پورت کیبورد مینویسه مثل بارکد ریدرها

Javad_Darvish_Amiry
یک شنبه 17 بهمن 1389, 15:22 عصر
دوست عزیز برای این که سریعتر و بهتر جواب بگیرید پیشنهاد می کنم توضحیات بهتر و جامعتری از کاری که میخواید انجام بدید ارائه کنید تا ما هم بهتر متوجه خواسته شما بشیم و بتونیم کمک بیشتری (اگه ازمون بر میومد) کنیم. موفق باشید.

araelectronic@ymail.com
یک شنبه 17 بهمن 1389, 15:57 عصر
بله حتما البته من فکر کردم که توضیحات مورد نیاز سوالو دادم میبخشید

من یک بارکد داخل کارت مغناطیسی قرار میدم ولی چون در حالت عادی براحتی قابل خواندن هست بر این اساس اونو داخل یک رشته 255 تایی پخش میکنم و موقعی کع کات کشیده میشه محتویات text را دوباره دیکد میکنم و بارکد اصلی را بدست میارم . چون سیستم تحت وب هست برا جلوگیری از بار سرور و سرعت کاربر میخواستم که سمت کلاینت الگوریتم دیکد اجرا بشه . ولی متاسفانه اسکریپت قابل خواندن توسط کاربر هست و از اینرو میخواستم بدونم آیا میشه طوری اسکریپت را نوشت که کاربر نبینه ؟ مثل کدهای C# ؟
امیدوارم که توضیحاتم کافی باشه
با تشکر

Javad_Darvish_Amiry
یک شنبه 17 بهمن 1389, 16:35 عصر
سلام دوست عزیز. ممنون از توضیحاتتون. خوب همونطور که اشاره شد امکان مخفی کردن کد سمت کلاینت تقریبا صفره. بهتره که این کار رو سمت سرور انجام بدید. نگران پردازش هم نباشید. این ها چیزی نیست که خیلی بخوایم نگرانش باشیم. تایمی که کارایی مثل این میبرن در مقابل کل فرایندهایی که انجان میشه و بخش هایی که هزینه زمانی دارند تقریبا هیچ هست. برای انتظار کاربر هم میتونید از ایژکس استفاده کنید که خیلی معطل نمونه. جی کوئری فعلا بهترین گزینه است. موفق باشید.