نمایش نتایج 1 تا 13 از 13

نام تاپیک: برای اونهایی که با ajax مشکل دارن

  1. #1

    Post برای اونهایی که با ajax مشکل دارن

    این کلاس (البته با مفهوم جاوا اسکریپتی) یک اسکریپت کاملا ساده با یک دستورالعمل ساده تره که بنده برای سایت خودم نوشته بودم و بهتر دیدم برای استفاده از تکنولوژی اِی جکس و دوستانی که با این قضیه یه خورده مشکل دارن در اختیار شما عزیزان قرار بدم.
    گذشته از این استفاده از این کلاس می تونه بصورت چشم گیری به کاهش حجم اسکریپت های شما , خوانایی بهتر و اشکال زدایی راحت تر کمک کنه .

    روش استفاده از کلاس :

    1- ابتدا اسکریپت رو به سایت خودتون import کنید : برای این کار می تونید فایل رو از این آدرس دانلود کنید و از سیستم محلی خودتون import کنید و یا از سرور کاسیت بگیرید با قراردادن

    <script type="text/javascript" language="JavaScript" src="http://www.kassit.com/RemoteScripts/XHRConn.js"></script>
    در تگ هد اونو import کنید . مزیت روش دوم اینه که بنده برای راحتتر شدن دوستان این اسکریپت رو آپدیت , ارتقا رفع اشکال می کنم و هر چند وقت یک بار برای دانلود می زارم با این روش دیگه نیازی به دانلود و آپدیت مجدد ندارید . از اونجایی که سورس این فایل رو هم به راحتی می شه دید از نظر امنیتی هم مشکلی ایجاد نخواهد کرد.

    2- یک نمونه از کلاس رو ایجاد کنید:

    var MyAjaxConn = new XHRConn();
    3- اطلاعات رو از طریق تابع send ارسال کنید:

    MyAjaxConn.send(Url , Data,
    function(Response,CallerObject){
    //این قسمت پس از بازگشت اطلاعات اجرا می شه
    },
    this
    );
    این تابع 4 آرگومان می گیره : send (core,data,Function,Object)
    1) اولین آرگومان یعنی پارامتر core آدرس فایلی رو مشخص می کنه که اطلاعات به اون ارسال می شن
    2) آرگومان دوم اطلاعاتی هستند که با متد post ارسال می شن
    3) تابعی که بعد از بازگشت اطلاعات باید اجرا بشه
    4) شی ای که تابع send رو فراخوانی کرده (اختیاری)

    به تابعی که شما به تابع send ارسال می کنید به صورت اتوماتیک 2 آرگومان ارسال می شه :
    1) Response که اطلاعات بازگشت داده شده رو به صورت یک شی String بر می گردونه و می تونید در تابعی که ارسال می کنید ازش استفاده کنید . درواقع هر پردازشی که می خواید روی اطلاعات بازگشتی انجام بدید باید روی Response که یک شی String هستش انجام بدید

    2) اگر به تابع send در آرگومان چهارم شی ای رو ارسال کردید همون شی به پارامتر CallerObject ارسال می شه و می تونید ازش استفاده کنید .

    یک مثال :

    var MyAjaxConn = new XHRConn();

    MyAjaxConn.send('getpassword.php' , '&username=admin',
    function(Response,CallerObject){
    CallerObject.password = Response; //ارسال شده اند Response به getpassword.php اطلاعات بازگشت داده شده توسط
    },
    this
    );
    آخرین ویرایش به وسیله امید امرایی : یک شنبه 13 مرداد 1387 در 23:40 عصر

  2. #2

    نقل قول: برای اونهایی که با ajax مشکل دارن

    دوستانی که از اسکریپت استفاده می کنند در صورتی که اشکالی می بینن و یا چیزی به نظرشون می رسه که می شه به اسکریپت اضافه کرد عنوان کنند

  3. #3

    نقل قول: برای اونهایی که با ajax مشکل دارن

    سلام.
    میشه لطفا یک مثال کاملتر را برای رهنمایی بیشتر قرار دهید. منظورم اینه که getpassword.php چگونه فایلی است و دارای چی محتویاتی است و هم چنان با کدام فایلی دیگری ارتباط دارد یا نه ؟

    تشکر

  4. #4
    کاربر دائمی
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    <? ;اینجا ؟>
    پست
    269

    نقل قول: برای اونهایی که با ajax مشکل دارن

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


    function AjaxIt(data, url, what, method){
    if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    req.onreadystatechange = processReqChange;
    req.open(method, url, true);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(data);
    }else if(window.ActiveXObject){
    req = new ActiveXObject('Microsoft.XMLHTTP');
    if (req){
    req.onreadystatechange = processReqChange;
    req.open(method, url, true);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(data);
    }
    }
    function processReqChange(){
    if (req.readyState == 4){
    if (req.status == 200){
    eval(what);
    }else{
    alert('There was a problem retrieving the XML data: ' + req.responseText);
    }
    }
    }
    }
    نمونه:
    AjaxIt('page=login', 'ajax.php', "alert(req.responseText);", 'POST');

  5. #5
    کاربر دائمی آواتار m.hamidreza
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    کره زمین
    پست
    1,465

    نقل قول: برای اونهایی که با ajax مشکل دارن

    یک پیشنهاد :
    سایت شما سایزش خیلی بالاست! حجم صفحه ی اصلی بالغ بر 300 کیلو بایت هست که در حدود 200KB فقط عکس داره. کمترش کنی خوب میشه....
    موفق باشید.

  6. #6

    نقل قول: برای اونهایی که با ajax مشکل دارن

    نقل قول نوشته شده توسط tanha2007 مشاهده تاپیک
    سلام.
    میشه لطفا یک مثال کاملتر را برای رهنمایی بیشتر قرار دهید. منظورم اینه که getpassword.php چگونه فایلی است و دارای چی محتویاتی است و هم چنان با کدام فایلی دیگری ارتباط دارد یا نه ؟

    تشکر
    در این برنامه اصلا مهم نیست که فایل getpassword.php چطور فایلی باشه و یا شامل چه ارتباطاتی . تنها چیزی که مهمه اینه که چه چیزی رو بازگشت می ده .

    خوب شاید برای شما مفهوم Response کمی مبهم باشه . یک مثال خدمتتون عرض می کنم :
    getpassword.php

    echo '123456';
    در واقع response یعنی هر چیزی که توسط getpassword.php به خروجی می ره یا به نمایش در میاد . این موضوع در سیستم های غیر Ajax ی هم وجود داره . وقتی شما تقاضای یک صفحه رو ارسال می کنید چیزی که به شما نمایش داده می شه همون Response گفته می شه . پس پاسخ فایل getpassword.php می شه 123456 .
    برای سیستم Ajax مهم نیست که چرا و از کجا این پاسخ داده شده بلکه فقط پاسخ بازگشت داده شده گرفته می شه .
    ممکنه شما پردازش های خیلی پیچیده ای انجام داده باشید و یا یک echo بسیار ساده به هر حال نتیجه پایانی رو به خروجی می فرستید

    مثال عملی تر :
    getpassword.php

    $username = $_POST['username'];
    $conn = mysql_connect('host','user','pass');
    if($query = mysql_query("SELECT password FROM users WHERE username = $username" , $conn))
    $password = mysql_result($query,0,'password');
    else
    $password = 'User_Not_Exist';

    print $password;
    حال صرف نظر اینکه password از کجا گرفته شده می تونیم در فایل فراخوان اینطور داشته باشیم

    var MyAjaxConn = new XHRConn();

    MyAjaxConn.send('getpassword.php' , '&username=admin', //POST با متد username ارسال
    function(Response,CallerObject){
    //ارسال شده اند Response به getpassword.php اطلاعات بازگشت داده شده توسط
    if(Response != 'User_Not_Exist')
    alert('Password for admin is ' + Response);
    else
    alert('No such user were found');
    }
    );

  7. #7

    نقل قول: برای اونهایی که با ajax مشکل دارن

    پنجاه سال بعد:
    ببخشید من اون آدرسی رو که توی پست اولتون فرستادید رو ، وقتی رویش کلیک می کنم ، می گوید که آن صفحه را پیدا نمی کند. می شه حالا کدش را توی این تاپیک بگذارید.

  8. #8

    نقل قول: برای اونهایی که با ajax مشکل دارن

    خوب اين پست خيلي قديميه و در حال حاضر اين برنامه به صورت يك فريم وورك منتشر شده و نسخه جديد هم در حال انتشاره به همين جهت لينك هاي پيشين منقضي شدند

    اما در هر صورت مي تونيد نسخه فعلي رو در آدرس زير دانلود كنيد
    http://www.kassit.com/?url=products/xhrconn

  9. #9

    نقل قول: برای اونهایی که با ajax مشکل دارن

    نقل قول نوشته شده توسط kassit مشاهده تاپیک
    خوب اين پست خيلي قديميه و در حال حاضر اين برنامه به صورت يك فريم وورك منتشر شده و نسخه جديد هم در حال انتشاره به همين جهت لينك هاي پيشين منقضي شدند

    اما در هر صورت مي تونيد نسخه فعلي رو در آدرس زير دانلود كنيد
    http://www.kassit.com/?url=products/xhrconn
    با سلام

    من وقتی توی این لینک جدیدی که معرفی کردید ، می رم ، خطای زیر را دریافت می کنم:


  10. #10

    نقل قول: برای اونهایی که با ajax مشکل دارن

    بله ممکنه
    ولی متاسفانه یا خوشبختانه بنده با هر مرورگر یا در هر شرایطی تست می کنم این خطا رو نمی بینم
    لطفا مشخصات مرورگر و سیستم عامل خودتون رو بفرمایید

  11. #11

    Red face نقل قول: برای اونهایی که با ajax مشکل دارن

    نقل قول نوشته شده توسط kassit مشاهده تاپیک
    بله ممکنه
    ولی متاسفانه یا خوشبختانه بنده با هر مرورگر یا در هر شرایطی تست می کنم این خطا رو نمی بینم
    لطفا مشخصات مرورگر و سیستم عامل خودتون رو بفرمایید
    با سلام

    IE7
    XP SP2

    راستش وقتی این پیغام را می دهد ، بلافاصله صفحه ی سایتتان را هم می بندد.

  12. #12

    نقل قول: برای اونهایی که با ajax مشکل دارن

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

  13. #13
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مهر 1384
    پست
    163

    نقل قول: برای اونهایی که با ajax مشکل دارن

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

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •