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

نام تاپیک: مشکل با Timeout توی Jquery

  1. #1
    کاربر دائمی آواتار sonixax
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    هامبورگ - آلمان
    پست
    100

    مشکل با Timeout توی Jquery

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



    <html>
    <head>
    <title>jQuery - Ajax dynamic content loading</title>
    <script src="jquery-latest.js" type="text/javascript"></script>
    <script type="text/javascript">
    function loadC(id) {
    var timer = setTimeout('alert("Hallo")' , 3000);
    $("#contentArea").load("rpc.php",{o: id});
    }


    </script>
    </head>
    <body onLoad="loadC(1);">

    <!-- Navigation, can't be bothered to do floats! -->
    <a href="javascript:loadC(1);">Tab 1</a> |
    <a href="javascript:loadC(2);">Tab 2</a> |
    <a href="javascript:loadC(3);">Tab 3</a> |
    <a href="javascript:loadC(999);">This content doesn't exist</a>

    <div id="contentArea" style="margin: 20px 0px 10px 10px; border: 1px solid #CCC;">
    &nbsp;
    </div>

    </body>
    </html>



    این هم طرف PHP :



    <?php

    $cOption = $_POST['o'];

    switch($cOption) {
    case 1:
    echo 'tab 1';
    break;
    case 2:
    echo 'tab 2';
    break;
    case 3:
    echo 'tab 3

    <script type="text/javascript">
    clearTimeout(timer);
    </script>

    ';
    break;
    default:
    echo 'empty';
    }

    ?>



    فایل Jquerry ولی باید اسمش عوض بشه : http://ajax.googleapis.com/ajax/libs.../jquery.min.js

    من توی جاوا اسکریپت خیلی خیل بیل میرم :) یعنی در همین حد بالا بلدم ، اگر میشه کمکم کنید که برای این اسکریپت یه طوری TimeOut تعریف کنم ، که اگر کانتنت لود نشد یا یه متغیر خاصی اون طرف لود نشد یعنی اون نتیجه ای که من میخوام رو نداد TimeOut بده !

    درست نمیدونم کجاش گند زدم

    خیلی مرسی .

  2. #2

    نقل قول: مشکل با Timeout توی Jquery

    هر timeout یه مشخصه داره که توسط تابع clearTimeout میشه متوقفش کرد.
    این صفحه رو مطالعه کنید: JavaScript Timing Events

  3. #3
    کاربر دائمی آواتار sonixax
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    هامبورگ - آلمان
    پست
    100

    نقل قول: مشکل با Timeout توی Jquery

    خیلی ممنون ، ولی من هنوز هم نفهمیدم که وقتی کانتنت صفحه PHP لود شد چه طوری TimeOut رو پاک کنم !

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

  4. #4

    نقل قول: مشکل با Timeout توی Jquery

    متد load در jQuery یه پارامتر سوم هم میگیره که یه تابع است. این تابع بعد از لود موفقیت آمیز اجرا میشه. شما باید اونجا هر عملیاتی که لازم دارید رو انجام بدید.
    $("#feeds").load("feeds.php", {limit: 25}, function(){
    alert("The last 25 entries in the feed have been loaded");
    });

  5. #5
    کاربر دائمی آواتار sonixax
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    هامبورگ - آلمان
    پست
    100

    نقل قول: مشکل با Timeout توی Jquery

    نقل قول نوشته شده توسط امیـرحسین مشاهده تاپیک
    متد load در jQuery یه پارامتر سوم هم میگیره که یه تابع است. این تابع بعد از لود موفقیت آمیز اجرا میشه. شما باید اونجا هر عملیاتی که لازم دارید رو انجام بدید.
    $("#feeds").load("feeds.php", {limit: 25}, function(){
    alert("The last 25 entries in the feed have been loaded");
    });
    خیلی ممنون .

    کتابی سراغ دارید که این موارد رو به خوبی توش نوشته باشه ؟
    من در مورد جاوا اسکریپت خیلی خیلی ضعیف هستم ، ایران هم نیستم برای همین کتابهای داخل ایران رو نمیتونم تهیه کنم : گل

    یه خواهشی هم داشتم ، میشه برام توضیح بدید ResponseText و TextStatus چه طوری کار میکنند و چیچی هستند ؟
    آخرین ویرایش به وسیله sonixax : پنج شنبه 29 بهمن 1388 در 01:36 صبح

  6. #6

    نقل قول: مشکل با Timeout توی Jquery

    jquery manual chm

    برای آشنایی با آژاکس می تونید این مطلب رو مطالعه کنید: http://boplo.ir/web-design/ajax-learn-tutorial
    آخرین ویرایش به وسیله امیـرحسین : پنج شنبه 29 بهمن 1388 در 21:35 عصر

  7. #7
    کاربر دائمی آواتار sonixax
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    هامبورگ - آلمان
    پست
    100

    نقل قول: مشکل با Timeout توی Jquery

    نقل قول نوشته شده توسط امیـرحسین مشاهده تاپیک
    jquery manual chm

    برای آشنایی با آژاکس می تونید این مطلب رو مطالعه کنید: http://boplo.ir/web-design/ajax-learn-tutorial
    سلام ، خیلی لینکی که دادید کمکم کرد ، و بند هم پلاگینم رو با موفقیت نوشتم و تمام شد و درست و حسابی کار میکرد مثل هلو تا اینکه یکی از دوستان در صفحه خودش همزمان از Prototype هم استفاده میکنه و اونجا دیگه پلاگین من از کار میوفته ! و وقتی که پروتوتایپ رو حذف میکنم درست میشه ولی از اون طرف اون یکی امکان سایت از کار میوفته ! چه طوری میتونم این مشکل رو برطرف کنم ؟

  8. #8
    کاربر دائمی آواتار sonixax
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    هامبورگ - آلمان
    پست
    100

    نقل قول: مشکل با Timeout توی Jquery

    راستی این اسکریپتی هست که من نوشتمش با کمک Jquery :

    <script src="../../plugins/forumthanks/js/jquery.js"></script>
    </script>
    <script type="text/javascript">

    var show_loading;
    var loadErrortext;
    var thankbutton;

    function make_ajax_thanks(post_id,post_owner) {

    var thank_timer = setTimeout("alert('زمان لازم برای بررسی اطلاعات سپری شد ، دوباره سعی کنید !')", 30000);

    show_loading = "<img src='../../plugins/forumthanks/user_images/loading/rotation_red.gif'> <img src='../../plugins/forumthanks/user_images/thank/thanks.png'>" ;

    document.getElementById("exp_thank_btn_div_" + post_id).innerHTML=show_loading;

    $("#exp_thanks_" + post_id).load("../../plugins/forumthanks/thanks.php?thank." + post_id + "." + post_owner,{ajax_thank : 1},function (responseText, textStatus, XMLHttpRequest) {

    if (textStatus == "success") {

    clearTimeout(thank_timer);

    document.getElementById("exp_thank_btn_div_" + post_id).innerHTML= " ";

    }
    if (textStatus == "error") {

    loadErrortext = "خطا ! دوباره سعی کنید&nbsp; : &nbsp;";

    thankbutton = loadErrortext + "<a href=" + "../../plugins/forumthanks/thanks.php?thank." + post_id + "." + post_owner + " onclick='make_ajax_thanks(" + post_id + "," + post_owner + "); return false;'><img src='../../plugins/forumthanks/user_images/thank/thanks.png'> </a>";

    document.getElementById("exp_thank_btn_div_" + post_id).innerHTML=thankbutton;

    }
    });

    }

    function remove_ajax_thanks(post_id,thank_id,post_owner) {

    var rem_timer = setTimeout("alert('زمان لازم برای بررسی اطلاعات سپری شد ، دوباره سعی کنید !')", 30000);

    show_loading = "<img src='../../plugins/forumthanks/user_images/loading/rotation_red.gif'> تشکر من را پاک کن" ;

    document.getElementById("rem_thank_btn_div_" + post_id).innerHTML=show_loading;

    $("#exp_thanks_" + post_id).load("../../plugins/forumthanks/thanks.php?remove." + post_id + "." + thank_id,{ajax_thank : 1},function (responseText, textStatus, XMLHttpRequest) {

    if (textStatus == "success") {

    thankbutton = "<a href=" + "../../plugins/forumthanks/thanks.php?thank." + post_id + "." + post_owner + " onclick='make_ajax_thanks(" + post_id + "," + post_owner + "); return false;'><img src='../../plugins/forumthanks/user_images/thank/thanks.png'> </a>";

    clearTimeout(rem_timer);

    document.getElementById("exp_thank_btn_div_" + post_id).innerHTML=thankbutton;

    if(document.getElementById("rem_thank_btn_div_" + post_id))
    {
    document.getElementById("rem_thank_btn_div_" + post_id).innerHTML= " ";
    }
    }
    if (textStatus == "error") {

    loadErrortext = "خطا ! دوباره سعی کنید&nbsp; : &nbsp;";

    thankbutton = loadErrortext + "<a href=" + "../../plugins/forumthanks/thanks.php?remove." + post_id + "." + thank_id + " onclick='remove_ajax_thanks(" + post_id + "," + thank_id + "); return false;'>تشکر من را پاک کن </a>";

    document.getElementById("rem_thank_btn_div_" + post_id).innerHTML=thankbutton;

    }
    });

    }

    </script>


    اون یک تیکه مربوطه به Jquery رو چه طوری میتونم با یک اسکریپت دیگه جایگزین کنم که وابسته به Framework خاصی نباشه ؟

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

  9. #9

    نقل قول: مشکل با Timeout توی Jquery

    برای برطرف کردن مشکل conflict با prototype به این آدرس برید: Using jQuery with Other Libraries

    درباره کدهاتون. خب باید بجای توابع جی کوئری که استفاده کردید، کدهای دستی وارد بشه مثلا کار تابع load رو باید توسط کدهایی که برای آژاکس میسازید انجام بدید.

  10. #10
    کاربر دائمی آواتار sonixax
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    هامبورگ - آلمان
    پست
    100

    نقل قول: مشکل با Timeout توی Jquery

    نقل قول نوشته شده توسط امیـرحسین مشاهده تاپیک
    برای برطرف کردن مشکل conflict با prototype به این آدرس برید: Using jQuery with Other Libraries

    درباره کدهاتون. خب باید بجای توابع جی کوئری که استفاده کردید، کدهای دستی وارد بشه مثلا کار تابع load رو باید توسط کدهایی که برای آژاکس میسازید انجام بدید.
    راستش من برای یک کار ساده از یک فریمورک قوی استفاده کردم ، این کار درسته یا اشتباه ؟

  11. #11

    نقل قول: مشکل با Timeout توی Jquery

    جی کوئری امکانات ویژه ای داره که بسته به سیستمتون می تونه واستون واقعا مفید باشه یا بی مورد.
    برای کارهای ساده، استفاده از جی کوئری زمان لود صفحه رو طولانی تر می کنه ولی امکاناتی میده مثل امکان توسعه ساده تر در آینده باز هم بستگی به خودتون داره.
    به نظر من اگر واقعا لازم نداریدش، حذفش کنید و به فکر dial-up ها باشید.

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

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