imanfakhar 26231 ارسال شده در مرداد 93 گزارش بازنشر ارسال شده در مرداد 93 اون سایت رفرش می شهمن نگفتم با جی کوئری نیستبا آژاکس جی کوئریهدر مورد آژاکس مطالعه کنید و لینکی که دادم را چک کنیدبه این تصویر هم دقت کنید می بینید که داره رفرش انجام می شه روی بروسر خودتون امتحان کنید 1 نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در مرداد 93 مالک گزارش بازنشر ارسال شده در مرداد 93 اون سایت رفرش می شهمن نگفتم با جی کوئری نیستبا آژاکس جی کوئریهدر مورد آژاکس مطالعه کنید و لینکی که دادم را چک کنیدبه این تصویر هم دقت کنید می بینید که داره رفرش انجام می شه روی بروسر خودتون امتحان کنیدممنونغیر از لینکی که دادید ، منبع دیگه ای برای این کار سراغ دارید ؟ نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در مرداد 93 گزارش بازنشر ارسال شده در مرداد 93 لینکی که دادم ژنراتوریه که خودم نوشتم و می دونم چی کار کردم http://www.w3schools.com/ajax/default.asp 1 نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در مرداد 93 مالک گزارش بازنشر ارسال شده در مرداد 93 لینکی که دادم ژنراتوریه که خودم نوشتم و می دونم چی کار کردمhttp://www.w3schools...jax/default.aspممنون.باهاش کار میکنم ، مشکلی بود همینجا مطرح میکنم. نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در مرداد 93 گزارش بازنشر ارسال شده در مرداد 93 این آموزش رو هم در سایت داشتم ولی یادم نبود [sharedmedia=tutorials:tutorials:456] 1 نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در مرداد 93 مالک گزارش بازنشر ارسال شده در مرداد 93 این آموزش رو هم در سایت داشتم ولی یادم نبودچیز زیادی ازش نفهمیدم ، بازم ممنون نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در مرداد 93 مالک گزارش بازنشر ارسال شده در مرداد 93 (ویرایش شده) اون سایت رفرش می شهآقا ایمان به سایت خوب دقت کردم.خود مدیر این کد رو گذاشته :$(document).load(function () {window.setInterval("refresh();", 300000);});بعد یه مدت سایت رفرش میشه.اما قسمتی که خبرهای جدید اضاف میشه ، رفرش نمیشه.از صفحه inspect element بگیرید و بیاید روی تگ <div class="b">.کاملا نحوه کار سایت مشخصه.خبرجدید که اضاف میشه ، background-color نداره و با jquery اضاف میشه.اگر div رفرش میشد ، باید background-color خبرهای قدیمی تر از بین میرفت. ویرایش شده مرداد 93 توسط Ghasem Paran نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در مرداد 93 گزارش بازنشر ارسال شده در مرداد 93 خوب من هم که همین رو عرض کردم بعد باید با تابع setTimeout صفحه را در یک بازه زمانی مشخص مثلا 1 دقیقه رفرش کنید و در نهایت دستور رفرش را آژاکسی کنید و بهش افکت بدیدموضوع اینه که خبر جدید در اثر رفرش آژاکسی به سایت معرفی می شه و راه دیگه ای هم وجود نداره php سمت سروره و از طرف کاربر قابل تغییر نیست و ارتباط با دیتابیس هم توسط php انجام می شه پس باید برای واکشی اطلاعات جدید از سرور صفحه دوباره بارگذاری بشه حالا می شه این بارگذاری را با آژاکس انجام داد و با جی کوئری بهش افکت داد 1 نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در مرداد 93 مالک گزارش بازنشر ارسال شده در مرداد 93 موضوع اینه که خبر جدید در اثر رفرش آژاکسی به سایت معرفی می شه و راه دیگه ای هم وجود نداره php سمت سروره و از طرف کاربر قابل تغییر نیست و ارتباط با دیتابیس هم توسط php انجام می شه پس باید برای واکشی اطلاعات جدید از سرور صفحه دوباره بارگذاری بشهحالا می شه این بارگذاری را با آژاکس انجام داد و با جی کوئری بهش افکت دادخب من تا به حال همچین کاری انجام ندادم ، آشنایی زیادی هم ندارم. برای همین سوال زیاد میپرسم به همچین اسکریپتی برای سایتم خیلی لازم دارم و مهم است. نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در مرداد 93 گزارش بازنشر ارسال شده در مرداد 93 در مورد آژاکس مطالعه کنید اسکریپتهای آژاکسی خیلی زیادند 1 نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در مرداد 93 مالک گزارش بازنشر ارسال شده در مرداد 93 در مورد آژاکس مطالعه کنیداسکریپتهای آژاکسی خیلی زیادند نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در شهریور 93 مالک گزارش بازنشر ارسال شده در شهریور 93 (ویرایش شده) سلام مجددمن از تابع load جی کوئری برای نمایش اخبار به صورت زنده استفاده کردم.20 تا خبر آخر رو نشون میده.حالا یه مشکل داره ، اگر 30 تا خبرجدید اضافه شده باشه :اول این که 10 تاش نشون داده نمیشه.دوم این که همه خبرها به یه دفعه عوض میشن.چیکار کنم ، خبرها به صورت تک تک اضافه شوند ؟ ویرایش شده شهریور 93 توسط Ghasem Paran نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در شهریور 93 گزارش بازنشر ارسال شده در شهریور 93 یا من درست متوجه نشدم یا فکر کنم یه جای کار رو اشتباه رفته باشید اگر نشانی آنلاین دارید بگذارید نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در شهریور 93 مالک گزارش بازنشر ارسال شده در شهریور 93 (ویرایش شده) یا من درست متوجه نشدم یا فکر کنم یه جای کار رو اشتباه رفته باشیداگر نشانی آنلاین دارید بگذاریدمتاسفانه هنوز قالب روی لوکال هست.اچ تی ام ال :<ul class="news"></ul>جی کوئری :auto_load = setInterval(function(){$(".news").load("live.php");},60000);فایل php :$sql = "SELECT * FROM `posts` ORDER BY id desc limit 20";$query = $this->load->connect->prepare($sql);$query->execute();while($row = $query->fetch(PDO::FETCH_ASSOC)) {echo '<li> <figure> <img src="" width="70" height="70" alt="" title=""> </figure> <a target="_blank" href="" title=""></a> <div class="info"> <span class="right"><a target="_self" href=""></a></span> <time datetime="" class="left"></time> </div></li>';}این کد 20 تا خبر اخر رو زنده نشون میده.1 - اگر 30 تا خبر جدید به یکباره اضاف بشه ، که 100% تا الان چندین بار اتفاق افتاده ، بر اساس کوئری فقط 20 تاش نشون داده میشه. (10 تای دیگه چی میشه ؟) 2 - فرض کنید 5 تا خبر جدید اضاف شده ، بعد از این که تابع load فراخوانی شد ، هر 5 تا خبر میاد روی صفحه ، من میخوام تک تک بیاد ، مثل سایتی که داخل تاپیک های پیشین معرفی کردم. ویرایش شده شهریور 93 توسط Ghasem Paran نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در شهریور 93 گزارش بازنشر ارسال شده در شهریور 93 اینکه 20 تا خبر رو کوئری می خونه مربوط می شه کوئریتون که تعدادش رو از main_query می گیره که تعداد مطالب صفحه اصلی سایتتونه و اصلا لازم نبود کوئری بگیرید و آژاکسیش کنید شما می تونستید خود صفحه اصلی سایت را روی خودش آژاکسی رفرش کنید البته ساختارتون باید اینجوری می شد <div class="news"><ul id="newsInner">...و ...$(".news").load("<?php bloginfo('url');?>/#newsInner");...وجود آی دی newsInner باعث می شه جی کوئری بدونه کدوم بخش از صفحه را در داخل کلاس news لود کنه در مورد تعداد اخبار هم آژاکس چیزی رو لود می کنه که در سایت موجوده شما می تونید انتشار در سایت رو با یک تابع زمانبندی کنید تا متناسب با زمان لود یک مطلب به سایت اضافه کنه اما به هیچ وجه این روش ها را برای سایت توصیه نمی کنم مگر اینکه سایت واقعا ساده ای داشته باشید (کمترین استفاده از جاوا اسکریپت و سی اس اس و سرور فوق العاده قوی) 2 نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در شهریور 93 مالک گزارش بازنشر ارسال شده در شهریور 93 برای این که فشار به سرور نیاد ، من یک صفحه اختصاصی برای اخبار زنده ساختم ، وگرنه خودم دوست داشتم تمام اخبار روی صفحه اول آژاکسی باشه الان این روشی که شما گفتید ، از کجا میفهمه که کدوم مطالب رو باید لود کنه ؟چون داخل این قسمت هیچ کوئری از قبل ارسال نمیشه و خبری برای نمایش وجود نداره تا این کد جی کوئری که ارسال کردم اجرا بشه.آقا ایمان من یک پیشنمایش برای شما میذارم و براتون pv میکنم آدرسشش.هر وقت تونستید نظرتون داخل pv بگید.ممنون نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در شهریور 93 گزارش بازنشر ارسال شده در شهریور 93 ببینید وقتی شما می خواهید در دایو با کلاس یا آی دی 1 آی دی 2 را اود کنید باید کل کدهای کوئری یا حلقه تون داخل دایو 2 موجود باشند چون آژاکس اون بخش را دوباره فراخوانی می کنه شما اول باید آژاکس را کنار بگذارید به صورت عادی و معمولی چیزی که می خواهید را بسازید وقتی از اجرای صحیحش مطمئن شدید اونرو آژاکسی کنید 1 نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در شهریور 93 مالک گزارش بازنشر ارسال شده در شهریور 93 (ویرایش شده) من با یه برنامه نویس صحبت کردم ، یه راه حل داد.گفت میشه که با آژاکس به دیتابس وصل شد و مطالب جدید فراخوانی کرد و در یک متغییر ذخیره کرد.بعدش گفت میشه خبرها رو تک تک به صفحه append کرد.لازم هم نیست همه خبرها سریع اضافه شوند ، دفعه بعد که به دیتابس وصل شد و خبرها واکشی شد ، بعد از آخرین خبر متغییر قرار بگیره.میشه همچین کاری کرد ؟ اگر میشه راهنمایی کنید. ویرایش شده شهریور 93 توسط Ghasem Paran نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در شهریور 93 گزارش بازنشر ارسال شده در شهریور 93 بله می شه و فکر کنم روش کاریه اغلب سایتهای مشابه همینجوریه کار خاصی نداره با توجه به اینکه عملا قرار نیست صفحه تغییر کنی می شه نتیجه گرفته شده از دیتابیس را به با مقدار فعلی یک متغیر مثل contents مقایسه کرد و موارد جدید را به متغیر داد در نتیجه مقدار متغیر مثلا از abc d می شه ab c d e و از طرف دیگه لیستتون با با settimeOut در سر موعد خودش یکی از انتها کم می کنه و مثلا a را جایگزینش می کنه و از موجودی متغیر حذفش می کنه من پیشنهادم را قبلا هم خدمتتون عرض کردم بجای اینکه چند کد را به دست آورید در مورد آژاکس از ریشه مطالعه کنید این خیلی مهمه که ابزارتون و کارکردهاش رو بشناسید 1 نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در شهریور 93 مالک گزارش بازنشر ارسال شده در شهریور 93 (ویرایش شده) آقا ایمان من از خدامه که آژاکس از پایه شروع کنم ، اما نمیشه ، درس و دانشگاه وقت زیادی برام نمیذاره ، برای همین دنبال چیزهایی که مورد نیازم هست میرم.فعلا آژاکس خالص با جاوا اسکریپت و جی کوئری هم تابع های fade , animate , slide و (چیزهایی که برای effect هست) ... رسیدم کار کنم.در مورد این موضوع هم این جوری بهتره ، هم فشار به سرور کم تر میاد ، هم زیباتر میشه کار رو انجام داد.من یه جستجو کردم داخل سایت های مختلف. به این کد رسیدم. کمی تغییرش دادم.var status = "play";var post='';var auto_load = setInterval(function(){if(status == "play") {$.ajax({type:'post',url: '/live',dataType:'text',success: function(data) {useReturnData(data);}});}},5000);function useReturnData(data){post = data.split('\n\n');};الان خبرها خونده میشن و داخل post ریخته میشه. (اطلاعاتی که خونده میشه 20 تا li هست)1 - یه مشکلی که داره این که هر دفعه اجرا میشه ، کل مقدار post تغییر میکنه.2 - بعد من نمیدونم چطوری مقدار post رو تک تک بخونم.3 - هر خبری که به صفحه اضافه میشه ، باید از post حذف بشه ویرایش شده شهریور 93 توسط Ghasem Paran نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در شهریور 93 مالک گزارش بازنشر ارسال شده در شهریور 93 (ویرایش شده) یالاخره بعد یک شب نخوابیدن درستش کردم. ارزششو داشت ، چون چیزی که میخواستم شد. داده ها از دیتابیس به json تبدیل میشن و توسط آژاکس خوانده شده و تک تک خوانده و به صفحه اضاف میشه.یه مشکل کوچیک داره.من تاریخ ها رو داخل دیتابیس ذخیره کردم ، یه فانکش دارم که اختلاف زمان رو بدست میاره (درست کار میکنه و تست شده)خبرها که اضاف میشن ، مثلا اولی مینویسه 6 ثانیه پیش ، بعدی 4 ثانیه پیش و بعدی 2 ثانیه پیش و ...<ul><li>6 ثانیه پیش</li><li>4 ثانیه پیش</li><li>2 ثانیه پیش</li></ul>اینجوری باید باشه » اولی 2 ثانیه پیش ، دومی 4 ثانیه پیش ، سومی 6 ثانیه پیش ...<ul><li>2 ثانیه پیش</li><li>4 ثانیه پیش</li><li>6 ثانیه پیش</li></ul>یعنی برعکس نشون میده امیدوارم منظورم رو رسونده باشم.راهی هست درستش کنم ؟ ویرایش شده شهریور 93 توسط Ghasem Paran نقل قول لینک به ارسال
Anisi 301 ارسال شده در شهریور 93 گزارش بازنشر ارسال شده در شهریور 93 (ویرایش شده) یالاخره بعد یک شب نخوابیدن درستش کردم. ارزششو داشت ، چون چیزی که میخواستم شد. داده ها از دیتابیس به json تبدیل میشن و توسط آژاکس خوانده شده و تک تک خوانده و به صفحه اضاف میشه.یه مشکل کوچیک داره.من تاریخ ها رو داخل دیتابیس ذخیره کردم ، یه فانکش دارم که اختلاف زمان رو بدست میاره (درست کار میکنه و تست شده)خبرها که اضاف میشن ، مثلا اولی مینویسه 6 ثانیه پیش ، بعدی 4 ثانیه پیش و بعدی 2 ثانیه پیش و ...<ul><li>6 ثانیه پیش</li><li>4 ثانیه پیش</li><li>2 ثانیه پیش</li></ul>اینجوری باید باشه » اولی 2 ثانیه پیش ، دومی 4 ثانیه پیش ، سومی 6 ثانیه پیش ...<ul><li>2 ثانیه پیش</li><li>4 ثانیه پیش</li><li>6 ثانیه پیش</li></ul>یعنی برعکس نشون میده امیدوارم منظورم رو رسونده باشم.راهی هست درستش کنم ؟توی کوئری که از دیتابیس میگیرید order_by رو تغییر بدید. ویرایش شده شهریور 93 توسط Anisi 2 نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در شهریور 93 مالک گزارش بازنشر ارسال شده در شهریور 93 (ویرایش شده) توی کوئری که از دیتابیس میگیرید order_by رو تغییر بدید.دوست عزیز ، عرض کردم ، درست نمایش داده میشه اما برعکس.صعودی یا نزولی بودنش تاثیری نداره.تاریخ داخل دیتابیس به این شکل هست :2014-08-27 05:29:38.000000خبرها که به دیتابیس اضاف میشه ، اختلاف زمانی خیلی کمی دارند (1 ثانیه و 2 ثانیه)تابعی که گفتم ، زمان ثبت خبر رو نسبت به زمان فعلی محاسبه میکنه و چون خبرها به ترتیب نمایش داده میشه تا برسه به آخرین خبر ، بنابراین زمانش زیاد میشه.من میخوام اگه میشه برای این قسمت با جی کوئری تاریخ رو نمایش بدم و کاری به تابعی که دارم نداشته باشم.فکر کنم بد توضیح دادم ویرایش شده شهریور 93 توسط Ghasem Paran نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در شهریور 93 مالک گزارش بازنشر ارسال شده در شهریور 93 تصویر رو ببینید ، متوجه میشید. نقل قول لینک به ارسال
Ghasem Paran 333 ارسال شده در شهریور 93 مالک گزارش بازنشر ارسال شده در شهریور 93 up نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .