الاقتراع الطويل - ما هي طرق تحديد متى لديك بيانات جديدة؟

StackOverflow https://stackoverflow.com/questions/1835275

سؤال

دعنا نقول أن لدي برنامج دردشة في كل مرة يرسل فيها شخص ما رسالة، يتم تأمين GlobalFile وكتبها. يحتوي عميل الاستلام على طلب XMLHTTP معلق ينتظر العودة مع الملف المحدث حديثا باستخدام هذا البناء:

while (!hasNewdata())
{    sleep 3;    }
print "$thenewdata";
sub hasNewData()
{
     # determine if global file has been appended to.
}

سوف نرسل حجم الملف إلى العميل ثم العودة إلى الخادم في طلب الاستطلاع التالي يكون طريقة جيدة للقيام بذلك، حيث يمكننا الآن التحقق مما إذا كان حجم الملف مختلفا عن ما تم إرساله بالفعل إلى العميل، لذلك نحن تعرف أن هناك بيانات جديدة. أو من شأنه أن يرسل إزاحة الملف ذهابا وإيابا نهجا أفضل حتى يعرف أين في الملف للتحقق من بيانات جديدة؟ أو طريقة مختلفة تماما، شيء آخر غير باستخدام ملف "دردشة" عالمي؟

ما هي الأساليب العامة لتحديد "البيانات الجديدة المتاحة"

هل كانت مفيدة؟

المحلول

يمكنك استخدام التاريخ المعدل.

$last_modified = filemtime("thisfile.php");

نصائح أخرى

حجم الملف ليس بهذه الطريقة السيئة.

قد تكون المتصفحات بالفعل وضع علامات "إذا تم تعديلها - منذ" رؤوس الطلبات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top