PDA

View Full Version : لود داده های صفحه جی کوئری و php و استخراج زنده داده



tazeha
چهارشنبه 24 تیر 1394, 18:45 عصر
سلام.


دوستان من چند سایت دیدم که بطور زنده تغییر قیمت رو نشون می دن.


سوال:


آیا اینها فقط با جی کوئری قیمت ها رو استخراج می کنند یا با php curl ؟


2-آیا با curl هر 10 دقیقه مطالب رو در دیتابیس ذخیره می کنه و هر 45 ثانیه با جی کوئری لود می کنه؟


3- لطفا مثالی بزنید: برای نمایش زنده.


اگر با curl لحظه بخوایم اینکار رو بکنیم خیلی فشار رو cpu میاد..


http://www.tgju.org/


http://www.arzlive.com/


http://1mesghal.com/

H:Shojaei
چهارشنبه 24 تیر 1394, 22:52 عصر
یک فایل که توی cronjob اجرا میشه حالا هر چند دقیقه ساعت هرچی و دیتاها رو میگیره توی دیتابیس ذخیره میکنه...
بعد این دیتا هایی که تازه ذخیره شده یک فیلد مثلا state دارن که نشون میده این داده تازه اومده یا نه که مثلا 0 و 1 باشه...
حالا وقتی داده ای از دیتابیس میگیریم چک میکنیم اول اگر داده تازه ای بود میگیریم و state اون رو 0 میکنیم اگر داده تازه هم نبود که هیچی واکشی نمیشه و جایی هم تغییری ایجاد نمیشه...

id1385
چهارشنبه 24 تیر 1394, 23:25 عصر
تا وقتی که جیکوئری هست کران چرا ؟
شما میخواهید که از توی سایت سایتهای دیگه رو بخونید و خود جیکوئری این قابلیت رو داره که شما یه صفحه رو کامل لود کنی و بعد که لود کردی با کوئری اون قسمتی از سایت رو که میخوای برداری
ولی اگه بخوای دیتا رو ذخیره کنی و یا از یک xml بخونی باید curl بخونی

tazeha
چهارشنبه 24 تیر 1394, 23:43 عصر
تا وقتی که جیکوئری هست کران چرا ؟
شما میخواهید که از توی سایت سایتهای دیگه رو بخونید و خود جیکوئری این قابلیت رو داره که شما یه صفحه رو کامل لود کنی و بعد که لود کردی با کوئری اون قسمتی از سایت رو که میخوای برداری
ولی اگه بخوای دیتا رو ذخیره کنی و یا از یک xml بخونی باید curl بخونی

دو تا سوال:
اگه با جی کوئری نوشته بشه کل کد نوشته شده معلومه و دیگران براحتی می تونن اون رو بزنن، ایا روشی وجود داره برای جلوگیری از دزدیدن کد؟

2.لطفا مثالی بزنید برای استخراج.

tazeha
چهارشنبه 24 تیر 1394, 23:47 عصر
یک فایل که توی cronjob اجرا میشه حالا هر چند دقیقه ساعت هرچی و دیتاها رو میگیره توی دیتابیس ذخیره میکنه...
بعد این دیتا هایی که تازه ذخیره شده یک فیلد مثلا state دارن که نشون میده این داده تازه اومده یا نه که مثلا 0 و 1 باشه...
حالا وقتی داده ای از دیتابیس میگیریم چک میکنیم اول اگر داده تازه ای بود میگیریم و state اون رو 0 میکنیم اگر داده تازه هم نبود که هیچی واکشی نمیشه و جایی هم تغییری ایجاد نمیشه...
سوالی برام پیش اومده:
من برای ذخیره دیتاها.
3 تا فیلد درست کردم,
I'd برای شماره گذاری خودکار هر رکورد
title عنوان قیمت
Price قیمت

اینکه میگید یه فیلد state درست کنم رو متوجه نشدم.

H:Shojaei
پنج شنبه 25 تیر 1394, 00:19 صبح
تا وقتی که جیکوئری هست کران چرا ؟
شما میخواهید که از توی سایت سایتهای دیگه رو بخونید و خود جیکوئری این قابلیت رو داره که شما یه صفحه رو کامل لود کنی و بعد که لود کردی با کوئری اون قسمتی از سایت رو که میخوای برداری
ولی اگه بخوای دیتا رو ذخیره کنی و یا از یک xml بخونی باید curl بخونی
بله این روش هم هست ولی با این کار شما همیشه هنگام رفرش یا بارگذاری صفحه باید سایت مقصد رو چک کنید که هزینش فک کنم بیشتر از این باشه که یک بار بخونه سایت رو ذخیره کنه و دفعات بعد از دیتابیس دیتا رو برداره...


سوالی برام پیش اومده:
من برای ذخیره دیتاها.
3 تا فیلد درست کردم,
I'd برای شماره گذاری خودکار هر رکورد
title عنوان قیمت
Price قیمت

اینکه میگید یه فیلد state درست کنم رو متوجه نشدم.
اونی که من گفتم به همین 3 تا یک فیلد دیگه هم اضافه کنید state درست میشه...
اما شما باید ببینید چطور قراره دیتاها رو نشون بدین من مثال کلی واسه فهم سناریویی که در پیش دارید زدم...
مثلا اگر داده ها هربار که از سایتها خونده میشن توی این تیبل درج میشن:
خوب در این صورت یک سلکت با order by id desc بزنید آخرین اطلاعاتی که خونده شده رو بهتون میده...
و یا اگر داده ها که از سایت خونده میشه یک سطری توی جدول داره و فقط ویرایش میشه اون سطره اونوقت مثلا با یه روشی مثل این state که گفتم میشه کارو انجام داد...

tazeha
پنج شنبه 25 تیر 1394, 03:38 صبح
اینی که من نوشتم صورت دومی که گفتید هست.
یعنی یک رکورد ذخیره میشه و بعد دوباره مطالب ویرایش میشه.
این که فیلد state 1,0 بشه. چطوریه؟ یعنی تو دیتابیس میشه این کار رو کرد که اگه مقادیر تغییر کرد 1 بشه و اگر نه صفر.
الان نوع فیلد I'd
Auto incremnet هست.
ویژگی های فیلد state باید چی باشه؟

H:Shojaei
پنج شنبه 25 تیر 1394, 04:31 صبح
ببینید فایل کرون که کار خودشو میکنه یعنی سایتو میخونه و اگر اطلاعات جدیدی بود برمیداره سطر مربوطه رو ویرایش میکنه با مقادیر جدید در همین حین شما باید توی جدولی جایی مکانی این فیلد state رو که از قبل داشتید اون رو هرچی هست معکوسش کنید یعنی اگر 1 بوده 0 بشه و اگر 0 بوده 1 بشه...


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

این هم که دقیقا نگفتم state کجا باید باشه چون من ساختار جداول شما رو نمیدونم و نمیدونم این مطالب به چه صورت و چطوریه...
فرضا میتونید این state رو داخل حتی یه فایل متنی که یا مقدار 1 یا 0 رو داخل نگه میدارید داشته باشید...