PDA

View Full Version : سوال: سوال در مورد threading



iranolom
جمعه 04 مرداد 1392, 00:57 صبح
چند نخی


السلام علیک

یکی که کار چند نخی کرده لطفا ایم مطلبو بخونه
اینقده مطالب چند نخی رو مطالعه کردم که الحمدالله تو ترجمه ها بعضی از مطالب حجتی 180 درجه با هم تناقض دارند

در ساده ترین حالت فرض کنید :

دو دکمه باتون با اسم های
btn1,btn2
و دو لیبل با نام های
lbl1,lbl2
در فرم داریم
در سی شارپ هم اکنون کدی نوشتیم که با کلیک روی دکمه 1 مقدار لیبل 1 برابر با * می کنه
و با کلیک روی دکمه 2 مقدار لیبل 2 رو برابر با + می کنه
هم اکنون در اجرا اگر روی دکمه اول کلیک کنیم هنوز پردازش تمام نشده و مقدار در لیبل 1 قرار نگرفته اگر هم اکنون روی دکمه 2 کلیک کنیم دستور قبلی حذف شده و فقط هم اکنون پردازش دکمه 2 اجرا میشه و لیبل 2 میشه+
و اون پردازش اولی نادیده گرفته میشه!!!
الان سوال اینجاست چطور کاری کنیم که این دستور دومی رو تو یه صف بزاریم بعد از اجرای اولی دومی هم اکنون اجرا بشه...

انشالله تونسته باشم مقصود سوالم رو رسونده باشم تازه آپدیت پنل هم استفاده میشه اونم تو روند کار تاثیر داره آیا ؟



==================
مطالب کاربر
zerocool151 (http://barnamenevis.org/member.php?264337-zerocool151)


نقل قول: چند نخی

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

Thread[] aThread = new Thread[10];




بعد موقع شروع هر پروسس میای و یک ترد new میکنی و میفرستی به اون کلاس

aThread[i]=new Thread(TreadClass);


void(TreadClass)
{
int ID = Int16.Parse(Thread.CurrentThread.Name);
bool mustAlive = true;

for (int i = ID; (i <= 2)&&mustAlive; i+=10)
{


//کارای مربوط به اون ترد

//الان که تموم شد ترد رو کیل میکنی
if (killThread == ID)
{
mustAlive = false;
killThread = -1;
}
Thread.Sleep(r.Next(20));
aInterested[ID] = false;
Thread.Sleep(r.Next(20));
}
}




====================================

بازم نشد ...!

اگر میشه رو فایل ضمیمه انجام بدید ...

bomb23
جمعه 04 مرداد 1392, 01:38 صبح
سلام دوست عزیز من thread توی C++ و گرافیک کار کردم تو C# نه ولی خب اونجا متدها Mutex و TryLock استفاده میکردیم تا منبع مشترک رو نوبت دهی کنیم، سرچ بزنید راجع به Mutex در سی شارپ . البته اگه منظورتون همین بوده باشه.

amirsajjadi
جمعه 04 مرداد 1392, 01:41 صبح
سلام دوست عزیز من thread توی C++ و گرافیک کار کردم تو C# نه ولی خب اونجا متدها Mutex و TryLock استفاده میکردیم تا منبع مشترک رو نوبت دهی کنیم، سرچ بزنید راجع به Mutex در سی شارپ . البته اگه منظورتون همین بوده باشه.

بله دوستمون درست میگه. از ThreadPool, Mutex, Semafor میتونی استفاده کنی

zerocool151
جمعه 04 مرداد 1392, 03:35 صبح
یک نمونه کد میزارم راجع به این چیزا ولی واسه ویندوزه
کار کن ایشالا به نتیجه میرسی
دانلود (http://veta.ir/UploadsFiles/Thread.rar)

iranolom
جمعه 04 مرداد 1392, 03:47 صبح
مساله اینه الان هر چی آموزش می خونم بیشترش از دو تا منبع انگلیسیه که اونا رو هم مطاله کردم ولی در کل ماهیت قضیه رو متوجه نمی شم


آخر مگر ما دو تا شی نداریم چجوری باید پیاده سازی بشه

چیز هایی که تو آموزش ها بود توی یه بلاک کد ها رو به نحوه های گفته شده مثلا همزمان یا بعد از اجرا شدن اولی و... اجرا می کنه الان من دو تا کنترل دکمه دارم و کد ها هر کدوم تو یه بلاک جدا هستن
روی اولی کلیک میشه می خوام باقی بمونه اگر حتی روی دکمه دوم نیز کلیک شد

اگر این مساله برام حل بشه خیلی خوب میشه ...

iranolom
جمعه 04 مرداد 1392, 04:11 صبح
دوستان گرامی ممنونم از صرف وقتتون

http://barnamenevis.org/attachment.php?attachmentid=107940&d=1374785855

اگر امکان داره و وقتش هست براش روی این برنامه که دو تا دکمه داره اینو اجرا کنه ...
هر کاری می کنم نمی شه !

iranolom
جمعه 04 مرداد 1392, 18:15 عصر
کسی نیست راهنمایی مون کنه :ناراحت:

mohsen_1687
جمعه 04 مرداد 1392, 23:54 عصر
دوست عزیز میشه بگید هدفتون از این کار چیه ؟ یعنی چه کاری تو سایتتون میخواید انجام بدید که به مشکل برخوردید ؟؟

iranolom
شنبه 05 مرداد 1392, 00:21 صبح
این اگر حل بشه چند تا مشکل اساسی من حل میشه

در همین حدی که گفتم

مثلا یه دکمه ویرایش دارم یه دکمه لایک یه دکمه حذف
حالا ممکنه چند تا رکورد هم خروجی بگیریم برا سایت

که در کل میشه چند تا دکمه لایک چند تا ویرایش و...

الان اگر روی هر کدام از دکمه ها مثلا لایک کلیک بشه باید صببر کنیم تا دستور بره پردازش بشه و بیاد بعد دکمه بعد رو بزنیم مثلا لایک مطلب بعدی یا ویرایش ...

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

الان می خوام کاری کنیم اگر حتی روی سه چهار تا دکمه همزمان کلیک شد برنامه بیاد اون جدیدا رو توی یه صف بزاره تا اون اولی کامل اجرا بشه ؟ نمی دونم بازم تونستم منظور رو برسونم یا نه محسن جان

تازه از آپدیت پنل هم استفاده می شه نمی دونم تاثیری تو این کار داره یا نه ...

iranolom
شنبه 05 مرداد 1392, 00:23 صبح
ایشالله این مشکل زودتر حل بشه که سوال بعدیم تو نوبته :لبخند:

iranolom
شنبه 05 مرداد 1392, 00:33 صبح
البته بگمااا این مساله ای هست که توسط خودمون نمی شه حل کرد وگرنه اینکه تو بسته تولکیت که توسط مایکرسافت گذاشته شده یه کنترلی هست که ستاره های امتیاز دهی به مطلب هست که سه چهار تا ستاره داره برای امتیاز دادن

خود این کنترل رو الان دارم استفاده می کنم همزمان روی پنج شیش تا شون کلیک که می کنم به نوبت پردازش میشن و امتیاز های هر مطلب به نوبت تو صف قرار می گیرن و درج میشن مشکلی نیست ولی الان روی باتون و سایر کنترل ها مشکل دارم که چطوری باید پیاده سازی اش کنم چیز هایی هم که بلدم فق در حد تئوریک هست ...

bomb23
شنبه 05 مرداد 1392, 00:48 صبح
سلام دوست عزیز من نمیدونم رشته شما کامپوتر هست یا نه ولی اگه هست روش های اعمال انحصار متقابل تو درس سیستم عامل باید یادت باشه . که یکی از بهترین راه ها سمافره . شما برو سرچ بزن راجع به سمافر اگه نتونستی درستش کنی فردا شب من برات پیاده سازیش میکنم.

aminghaderi
شنبه 05 مرداد 1392, 00:52 صبح
الان اگر روی هر کدام از دکمه ها مثلا لایک کلیک بشه باید صببر کنیم تا دستور بره پردازش بشه و بیاد بعد دکمه بعد رو بزنیم مثلا لایک مطلب بعدی یا ویرایش ...

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

الان می خوام کاری کنیم اگر حتی روی سه چهار تا دکمه همزمان کلیک شد برنامه بیاد اون جدیدا رو توی یه صف بزاره تا اون اولی کامل اجرا بشه ؟ نمی دونم بازم تونستم منظور رو برسونم یا نه محسن جان

تازه از آپدیت پنل هم استفاده می شه نمی دونم تاثیری تو این کار داره یا نه ...


سلام.
داستان این طوری نیست که شما می فرماید دوست بزرگوار.
سی شارپ زبان مفسری که نیست که خط به خط برنامه شما رو اجرا کنه ، زبان تابعی و شی گرا هست و با توجه به فراخونی توابع و کلاس ها برنامه اجرا می شه.
اما مشکل شما ظاهرا اصلا asp.net نیست شما بیشتر فکر کنم با javascript مشکل داری چون اونه که مفسری هست و خط به خط اجرا می شه .

مورد بعدی سیستم تردینگ رو برای این کارهای استفاده نمی کنند ، برای پردازش های موازی استفاده می شه . مثلا پر کردن 3 تا دیتابیس هم زمان یا خواندن چندین وبسایت به صورت هم زمان و ...
کلا نظر من اینکه به جای پیچ دادن موضوع اگر خیلی خلاصه کوتاه مفید و مختصر بگید مشکل دقیقا چکار می خواید انجام بدید خیلی سریعتر به نتیجه می رسید.

iranolom
شنبه 05 مرداد 1392, 00:54 صبح
کامپیوتر می خونم تئوریک رو هم مطالعه کردم ولی قابلیت پیاده سازی رو هر کاری که می کنم نمی شه یه لینک ضمیمه پروژه گذاشتم که با ویژال 2010 هست اگر بتونید روی اون پیاده سازی بکنید که دو تا دکمه روشه خیلی خوب میشه پیشاپیش هم ممنونیم :خجالت:

iranolom
شنبه 05 مرداد 1392, 01:00 صبح
امین جان مشکل رو واضح گفتم اگر ویژوال استدیو 2010 نصب دارید این ضمیمه

http://barnamenevis.org/attachment.php?attachmentid=107940&d=1374785855

رو بی زحمت دانلود کنید دو تا کمه توی پروژه هست که روی هر کدوم کلیک بشه لیبلی رو مقدار دهی می کنه

الان اگر روی دکمه اول کلیک کنم قبله اینکه مقدار توی لیبل بره دوباره روی دکمه دوم کلیک کنم اون پردازش اولی از بین میره و فقط میره کد های اون دکمه دوم رو اجرا می کنه در صورتیی که من دو تا کار بهش داده بودم

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

حالا اگر اطلاعاتی در این مورد دارید لطفا دریغ نفرمایید دوستان ...
اگر بشه روی همون پروزه کوچیه این کار رو عملی دوستی اجرا بگیره ممنونش میشیم:قلب:

iranolom
شنبه 05 مرداد 1392, 01:04 صبح
اما مشکل شما ظاهرا اصلا asp.net نیست شما بیشتر فکر کنم با javascript مشکل داری چون اونه که مفسری هست و خط به خط اجرا می شه .



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

iranolom
شنبه 05 مرداد 1392, 01:12 صبح
الان تو این صفحه

http://iranolom.ir/profile.aspx?name=iranolom

اگر توجه کنید این ستاره هایی که هستن رو می تونیم بصورت همزمان روی چند تا شون کلیک کنیم بترتیب اجرا میشن دستورات بدون اینکه کار قبلی رو از بین ببرن

ولی اگر از باتون اینجا استفاده کنیم فقط اجازه میده روی روی یه دکمه کلیک کنیم منتظر اتمام کار بمونیم وسپس روی دکمه بعدی کلیک کنیم شبیه به همین پروژه ضمیمه که گذاشتم میشه

aminghaderi
شنبه 05 مرداد 1392, 01:18 صبح
چرا دیگه کلا این فرایند Star Ranking با استفاده از جاوا اسکریپت و ای اس پی صورت می گیره .
حالا من به اون کنترل کار ندارم ولی اگر بخوای همین رو پیاده سازی کنی هیچ کاری نداره .
سمت سرور شما مشکلی نداره ، این جا فقط بحث کلاینت هست و مدیرت حالات ، کاری که jquery به راحتی از عهدش بر اومده ولی یه مکانیزم داره که خدمتت عرض می کنم.
زبان جاوا اسکریپت همین طوری که گفتم زبانی هست خطی یعنی پشت سر هم کدها اجرا می شن و هر خط کد کاری به اجرای خط قبلی خودش نداره اما می شه جاوااسکریپت رو مجبور کرد که تا زمان انجام کار خط بالا منتظر بایسته .
توسط جی کوئری به صورت زیر می شه :

$("#Div").fadeOut(1000, function () {
alert("run");
ShowFunction();
});



این تابع رو بسته به کارتون کاستومایزش کنید و خیلی از این کارها کردم هم با جی کوئری و هم با جاوا اسکریپت ، اگر با جی کوئری کارت حل بشه خیلی بهتره ولی اگه نشد بگو تا کد جاوااسکریپت برات بزارم.
(البته باست لای کدهای قدیم پیداش کنم)

aminghaderi
شنبه 05 مرداد 1392, 01:22 صبح
ولی اگر از باتون اینجا استفاده کنیم فقط اجازه میده روی روی یه دکمه کلیک کنیم منتظر اتمام کار بمونیم وسپس روی دکمه بعدی کلیک کنیم

من پروژه ضمیمه شما رو ندیدم ولی احیانا دکمه های شما سروی نیستند ؟؟ و عمل پست بک صورت نمی گیره؟؟

iranolom
شنبه 05 مرداد 1392, 01:27 صبح
من پروژه ضمیمه شما رو ندیدم ولی احیانا دکمه های شما سروی نیستند ؟؟ و عمل پست بک صورت نمی گیره؟؟


این لینکش

http://barnamenevis.org/attachment.php?attachmentid=107940&d=1374785855

چیز بخصوصی نیستش دو تا buttom و دوتا label

در ضمن اون دکمه ها هم سمت سرور هست

iranolom
شنبه 05 مرداد 1392, 01:28 صبح
البته گفته باشم منظورم از اجازه این نبود که نمی شه میشه ولی اگر بشه اون دستور قبلی که هنوز اجرا نشده حذف میشه و دستور جدیده فقط پردازش میشه هااا

bomb23
شنبه 05 مرداد 1392, 01:30 صبح
من الان وقتم آزاد شد الان برات پیاده سازی میکنم با سمافر

iranolom
شنبه 05 مرداد 1392, 01:40 صبح
من الان وقتم آزاد شد الان برات پیاده سازی میکنم
دستتون درد نکنه :لبخندساده:



با سمافر

سمافر چیه :متعجب: خلاصه یه چیزی باشه منم بتونم سر در بیارم توشااا :لبخند: ممنون

aminghaderi
شنبه 05 مرداد 1392, 01:45 صبح
خسته نباشی ...
شما عزیز از المنت های سرور ساید داری استفاده می کنی و توقع داری ای اس پی بتونه دوتا رویداد رو برات هم زمان اجرا کنه؟؟؟؟؟
مکانیزم کار موتور asp اینه که در حالت سنکرون (همزمان) یا همون postback فقط یه رویداد رو اجرا کنه.
البته شما می تونید یه همچین کاری رو هم به صورت سنکرون انجام بدید ولی باست براش یه تابع جاوااسکریپتی تعریف کنید که تمام متغییر های شما رو سرجمع نگه داره و وقتی رویداد دکمه سمت سرور اجرا می شه همه متغیر های رو یک جا به سرور پست کنه ولی کار منطقی و عقلانی نیست.
برای این مشکل می تونید از ایجکس کمک بگیرد که به کمک اون می شه به صورت آسنکرون یا غیر همزمان رویدادی رو بار ها و بارها در سرور اجرا کرد .

iranolom
شنبه 05 مرداد 1392, 01:50 صبح
خسته نباشی ...
برای این مشکل می تونید از ایجکس کمک بگیرد که به کمک اون می شه به صورت آسنکرون یا غیر همزمان رویدادی رو بار ها و بارها در سرور اجرا کرد .

الان تو این ضمیمه همین چیزی رو که گفتید رو می تونید برای دو تا دکمه اجرا کنید ...

aminghaderi
شنبه 05 مرداد 1392, 02:01 صبح
من که سالهاست دارم این کار ور انجام می دم ، اینم الان پروژه شماست شما خودت باست انجامش بدی منم چون بی خوابی زده به سرم دارم راهنمایت می کنم .
ولی برای این کار باست موارد زیر رو یاد بگیرید تا مسلط بشید :
1 ) مبانی ایجکس .
2) جی کوئری ایجکس .

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

iranolom
شنبه 05 مرداد 1392, 02:05 صبح
پیشنهاد می کنم اول کاری سراغ این طور مسائل نری که واقعا از طراحی وب بی زار می شی و همین جا جلوی رشد خودت رو می گیری.
همیشه باست مرحله به مرحله جلو رفت .
اول طراحی ساده ، بعد متوسط بعد پیشرفته و بعد ... کارهایی که از ما بهترون توی دنیای وب انجام می دن .

:قهقهه: نه جالب بود امین جان همین قدرشم ممنونم:قلب: ایشالله یه روز کار شما هم بیفته تو دستمون:چشمک: :لبخند:

iranolom
شنبه 05 مرداد 1392, 02:12 صبح
امین جان حالا گذشته از اینا یعنی الان این کنترل ستاره هایی که گفتم تو بسته تولکیت بودش یعنی این کد ها رو می فرسته و اجرا می کنه بصورت جی کوئری ایجکس یعنی !! در صورتی که کد ها من که وارد می کنم سی شارپه ...

bomb23
شنبه 05 مرداد 1392, 02:34 صبح
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading;


public partial class Default2 : System.Web.UI.Page
{

Thread t1 = new Thread(t1f);
Thread t2 = new Thread(t2f);



static bool Allow = true;
struct mysemaphor
{
public int count;
public int[] q;
}
static mysemaphor s;





protected void Page_Load(object sender, EventArgs e)
{
s.count = -1;
s.q = new int[10];
}
protected void Button1_Click(object sender, EventArgs e)
{
t1f();

}


protected void Button2_Click(object sender, EventArgs e)
{
t2f();
}

static void t1f()
{
if (Allow)
{

Allow = false;
//critical
Allow = true;
}
else
{
s.count++;
if (s.count >= 0)
{
s.q[s.count] = 1;
while (true)
{
if (!Allow)
{
break;
}
}
}
if (s.count >= 0)
{
if (s.q[s.count] == 1)
{
s.count--;
t1f();
}
else if (s.q[s.count] == 2)
{
s.count--;
t2f();
}
}

}
}
static void t2f()
{
if (Allow)
{
Allow = false;
//critical
Allow = true;
}
else
{
s.count++;
if (s.count >= 0)
{
s.q[s.count] = 2;
while (true)
{
if (!Allow)
{
break;
}
}
}
if (s.count>=0)
{
if (s.q[s.count]==1)
{
s.count--;
t1f();
}
else if (s.q[s.count]==2)
{
s.count--;
t2f();
}
}

}
}

}

آقا این کدش ولی به نظرم آقای aminghaderi راست میگه واسه اینجور چیزا باید از jquery استفاده کنی ولی من چون دوست داشتم یه بار سمافرو تو C#‎ هم پیاده سازی کنم اینو برات نوشتم وگرنه عمرا :لبخند:
ولی انصافا حال داد چیز باحالیه البته یه نوع سمافرم خود سی شارپ داره بعدا باید اونم چک کنم.

iranolom
شنبه 05 مرداد 1392, 03:59 صبح
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading;


public partial class Default2 : System.Web.UI.Page
{

Thread t1 = new Thread(t1f);
Thread t2 = new Thread(t2f);



static bool Allow = true;
struct mysemaphor
{
public int count;
public int[] q;
}
static mysemaphor s;





protected void Page_Load(object sender, EventArgs e)
{
s.count = -1;
s.q = new int[10];
}
protected void Button1_Click(object sender, EventArgs e)
{
t1f();

}


protected void Button2_Click(object sender, EventArgs e)
{
t2f();
}

static void t1f()
{
if (Allow)
{

Allow = false;
//critical
Allow = true;
}
else
{
s.count++;
if (s.count >= 0)
{
s.q[s.count] = 1;
while (true)
{
if (!Allow)
{
break;
}
}
}
if (s.count >= 0)
{
if (s.q[s.count] == 1)
{
s.count--;
t1f();
}
else if (s.q[s.count] == 2)
{
s.count--;
t2f();
}
}

}
}
static void t2f()
{
if (Allow)
{
Allow = false;
//critical
Allow = true;
}
else
{
s.count++;
if (s.count >= 0)
{
s.q[s.count] = 2;
while (true)
{
if (!Allow)
{
break;
}
}
}
if (s.count>=0)
{
if (s.q[s.count]==1)
{
s.count--;
t1f();
}
else if (s.q[s.count]==2)
{
s.count--;
t2f();
}
}

}
}

}

آقا این کدش ولی به نظرم آقای aminghaderi راست میگه واسه اینجور چیزا باید از jquery استفاده کنی ولی من چون دوست داشتم یه بار سمافرو تو C#‎ هم پیاده سازی کنم اینو برات نوشتم وگرنه عمرا :لبخند:
ولی انصافا حال داد چیز باحالیه البته یه نوع سمافرم خود سی شارپ داره بعدا باید اونم چک کنم.


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

یعنی الان دقیقا این دستورات مقدار دهی به لیبل ها رو کجا باید قرار بدم !
آیا برای اجرای هر دستور این مقدار allow رو با true باید چک بکنم یا نه ...

بعد تازه این برای دو تا دکمه میشه اگر تعدادشون بیشتر بشه مثلا 10 تا آیا باید 10 تا ترید ایجاد بشه انوقت که پیچیده در پیچیده میشه که:متعجب:!

iranolom
شنبه 05 مرداد 1392, 04:01 صبح
قضایای جی کوئری چجوریه از کجا باید یاد بگیرم آموزشی مد نظر دوستان هست برا دانلود ؟

یه چیزی من هنوز تو کف این کنترل ستاره ای آجاکس بسته تولکیت مونده ام که چطور کار می کنه !!:متفکر:

bomb23
شنبه 05 مرداد 1392, 12:31 عصر
آره دبگه واسه هر باتن یه سری چیزا اضافه میشه واسه همین گفتم بیخیالش شو :لبخند:
برو w3schools.com آموزشاش خوبه.

aminghaderi
شنبه 05 مرداد 1392, 14:57 عصر
سلام.
نه کنترل تولکیت دات نت براش افت داشت بیاد با جی کوئری کار کنه و برای همین هم اون از جاوااسکریپت بهره می بره و البته جاوااسکریپت هم که درجریان هستید پدر جی کوئری هست و به صورت مستقیم با ایجکس اون یعنی شی xmlhttprequest کار می کنه تا سرعت درخواست ها رو به نهایت خودش برسونه.
حالا برای این star ranking داخل بسته تولکیت دقیقا مطمئن نیستم که با اجکس باشه ، چون خودم امتحانش نکردم و اینکه راههای زیادی برای این کار هست حتی بدون استفاده از ایجکس! ولی اینو مطمئنم برای این طور کارها حتما باست از جاوااسکریپت کمک گرفت.
و این رو هم مطمئنم با ایجکس خیلی بی دردسرتر و مهندسی تره.

اما خیلی وقته برای برنامه نویسی سمت کلایت و زبان جاوااسکریپت دیگه کسی به صورت مستقیم از زبان جاوا اسکریپت استفاده نمی کنه و به جای اون از فریم ورک ها (چهارچوب های کاری) جاوااسکریپتی و یا کتابخونه های اون استفاده می کنند مثل jquery , sancha , extjs و....
که البته هر کدوم یه کارایی و یه عیبی دارند ولی طی سالهای گذشته جی کوئری با توجه به عمر کمش نسبت به بقیه فریم ورک ها تونسته محبوبت پیدا کنه .
بخشی از این محبوبتش برای مجوز استفاده از اون هست (اطلاعات بیشتر به سایتش برین) و بخشی دیگه برای کوتاه کردن کدهای جاوااسکریپتی.

اما یادگیرش اگه جاوا اسکریپت بلد باشی و کلا بدونی ساختار زبانی جاوااسکریپت رو خیلی راحت یاد می گیری ولی اگر هم ندونی موردی نداره فقط یکم باست بیشتر کار کنی.
منبع خواصی مد نظرم نیست جز همین گوگل و سایت خودش و سایت stakoverflow و سایت w3schol که دوستمون هم اشاره کردن.

iranolom
شنبه 05 مرداد 1392, 15:17 عصر
عجب
السلام علیک ممنون از همه دوستان

جاوا اسکریپت رو آزمایش کردم آیجکسش رو

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

کار با بانک هم باهاش مشکله

راهی هست که یه تابع سی شارپ بنویسیم بعد فقط از طریق این جاوا انو فراخوانی کنیم ؟

bomb23
یک شنبه 06 مرداد 1392, 03:03 صبح
سلام آقا JS کلا سمت کلاینته بانک مانک تعطیله . کلا با JS باید کارای روی سیستم طرف رو انجام بدی.
اینکه گفیتد "راهی هست که یه تابع سی شارپ بنویسیم بعد فقط از طریق این جاوا انو فراخوانی کنیم" چه کاریه اصلا ! اصلا فهم سوالتم سخته . دیگه پیچیدش نکنید انقد . بخون JS رو دیگه از این حرفا نمیزنی :چشمک:

iranolom
یک شنبه 06 مرداد 1392, 04:04 صبح
علیکم السلام
طاعاتتون مورد قبول حق داداشhttp://hadinet.ir/i/icons/s63.gif

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

در مورد جی کوئری و اون شی xmlhttprequest این هم قبلا یه چیز هایی کار کردم ولی مساله این بود روی کنترل هاییی که سرور بودن نمی تونستم راحت کار کنم و خروجی ها بدست امده رو نمایش بدم اونم یکم پیچیده بود فکر نمی کردم اینقده دنگ فنگ داشته باشه !

خلاصه اینکه دست و کیبورد همگی تون درد نکنهhttp://hadinet.ir/i/icons/s43.gif الان مشکل جدید توی این لود چند تا از کنترل های تولکیت در خروجی لیست ویو هایی که چندین سطر هستن دارم که چند روز دیگه مطرح می کنم ببینم اون رو میشه حد کرد خدا کنه که جوابش شبیه به این سوالم نشه که فاکتور بگیرم ...

bomb23
یک شنبه 06 مرداد 1392, 13:29 عصر
اون کد من قطعا عقلانی نیست اینجا استفاده شه ولی کد درسته. ما در خدمتیم اگه بلد باشیم، ما خودمون طالب علمو در حال یادگیریم.