php - jquery - refresh the page when new data stored in to the table across the browser sessions -
पर्यावरण: PHP / MySQL / Jquery
मैं पृष्ठ को रीफ्रेश करना चाहता हूं ( उदा: index.php) जब नया डेटा स्टोर तालिका में होता है (ex: new_entry_table) प्रत्येक एक मिनट के लिए जाँच कर रहा है
jquery और डेटाबेस जांच का उपयोग करके मैंने निम्नलिखित की कोशिश की:
setInterval (function () {$ .post ("new_data_check.php", फ़ंक्शन (डेटा) {if (डेटा & gt; 0) {$ ("# container")। FadeOut ('fast')। लोड (स्थान .reload ());}}); वापस लौटाएं;}, 60000);
new_data_check.php:
: test_db में नए डेटा की जांच करता है जहां newdata_field = 0;
: यदि कोई नया डेटा ईको "1" उठता है; और newdata_field = 1 अपडेट करें; लगातार पृष्ठ को ताज़ा करने के लिए
: else "0" गूंज;
: बस एक ट्रिगर के लिएतो ऊपर की jquery code new_data_check.php ट्रिगर के लिए प्रत्येक 1 मिनट की जांच करता है, अगर कोई भी ट्रिगर उत्पन्न होता है तो यह कंटेनर को रीफ़्रेश करेगा.लेकिन इसकी रिफ़्रेश हो रही है केवल एक खोला सत्र अन्य खोला सत्र (अन्य ब्राउज़र या अन्य पीसी में) ताज़ा नहीं हो रहा है।
ऐसा करने का बेहतर तरीका सुझाएं धन्यवाद।
आपकी new_data_check.php फ़ाइल को उन सभी उपयोगकर्ताओं का ट्रैक रखने की आवश्यकता होगी जो स्वतंत्र रूप से देख रहे हैं पृष्ठ।
यदि नहीं, तो ऐसा होगा:
- उपयोगकर्ता 1 और उपयोगकर्ता 2 दोनों साइट में लॉग इन हैं।
- उपयोगकर्ता 1 उपयोगकर्ता 1 से पहले 5 सेकंड की जांच करता है, नया डेटा है।
- उपयोगकर्ता 1 अपने अनुरोध को पूरा करता है सर्वर नया_डेटा बिट को साफ करता है।
- उपयोगकर्ता 2 का अनुरोध 5 सेकंड बाद में आता है। उसके अनुरोधों का अनुकरण, लेकिन इस समय, उपयोगकर्ता 1 ने नए_डेटा फ़ील्ड को 0 पर सेट कर दिया है। उसका डेटा बासी है, लेकिन उपयोगकर्ता 1 ने उसे प्रभावी रूप से सह-चयन किया है।
इसे देखकर , आप किसी भी जानकारी के साथ इसे आपूर्ति नहीं कर रहे हैं जो उपयोगकर्ता की पहचान करेगा - जब तक कि सर्वर यह निर्धारित नहीं कर रहा है कि आईपी पते का उपयोग करना अगर यह मामला है, तो याद रखें कि यह एक छोटे से नेटवर्क के पीछे हर कोई एक ही बाह्य आईपी पता वाला होगा। इसलिए यह लोगों को एक कार्यालय में अलग नहीं बता सकता।
आप क्या कर सकते हैं प्रत्येक सत्र के लिए किसी भी प्रकार के अद्वितीय हैश उत्पन्न करते हैं और ब्राउज़र से दूर जाते हैं। जावास्क्रिप्ट फिर उसी स्क्रिप्ट को PHP स्क्रिप्ट प्रदान कर सकता है।
किसी विशेष प्रकार के बिना एक और समाधान, अनुरोध के साथ एक टाइमस्टैंप के साथ गुजरना होगा। मूल रूप से, ग्राहक कहते हैं, "मेरे नवीनतम बिट के आंकड़े 9: 21:53 अपराह्न" पर पहुंचे "सर्वर तब जांचता है और जवाब देता है" इससे पहले मेरा सबसे हालिया डेटा बनाया गया था, इसलिए आप अभी भी अच्छे हैं "या" मुझे मिल गया है जिस चीज़ को 9: 22:53 अपराह्न पर बनाया गया था या संशोधित किया गया था, उसे इसे डाउनलोड करना चाहिए। "
उस पद्धति के साथ, आपको चिंता करने की आवश्यकता नहीं है कि कौन कौन है इसके बजाय, आपको उस डेटा पर संशोधन / निर्माण समय की आवश्यकता होती है, जिसे आप स्टेलेनेस के लिए जांच कर रहे हैं। आपको यह भी सुनिश्चित करने की आवश्यकता है कि क्लाइंट घड़ी सही तरीके से सिंक्रनाइज़ है - बेहतर अभी तक, ग्राहकों की तारीख और समय जानकारी पर भरोसा नहीं करें संभवत: आपके new_data_check.php का प्रयोग स्क्रिप्ट को टाइमस्टैम्प के साथ प्रदान करने के लिए कर सकते हैं जिसे बाद के अनुरोधों पर भेज सकते हैं।
Comments
Post a Comment