2010-11-11 16 views
6

मैं सी # asp.net में समयबद्ध ऑनलाइन परीक्षण कर रहा हूं। मैंने इसे स्थानीय मशीन समय का उपयोग करके बनाया है। लेकिन डेटाबेस डिस्कनेक्शन या सिस्टम लटकने के मामले में, उलटी गिनती टाइमर उस समय से शुरू होना चाहिए जिस पर मशीन लटका हुआ है या अप्रत्याशित डेटाबेस डिस्कनेक्टिविटी है। उदाहरण के लिए उपयोगकर्ता 10 मिनट के लिए प्रश्नों का उत्तर दे रहा है और अप्रत्याशित रूप से सिस्टम फांसी दी गई है। वसूली के बाद उलटी गिनती 10 मिनट से शुरू होनी चाहिए। क्या कोई मुझे सी # में कोडिंग के साथ मदद कर सकता है? मैंने निम्नलिखित कोडिंग का उपयोग किया है, लेकिन यह उपर्युक्त परिदृश्य में उपयोगी नहीं है।एएसपीनेट वेब एप्लिकेशन (सी #) में उलटी गिनती टाइमर कैसे बनाएं?

int totalTime = (Convert.ToInt32(ViewState["totaltime"])) * 60; 

    DateTime startTime = (DateTime)ViewState["startTime"]; 
    TimeSpan elaspedTime = DateTime.Now.Subtract(startTime); 
    Literal1.Text = elaspedTime.Hours.ToString() + "h" + ":" + elaspedTime.Minutes.ToString() + "m" + ":" + elaspedTime.Seconds.ToString() + "s"; 

    int finish = Convert.ToInt32(elaspedTime.TotalSeconds); 

    int remaingsec = (totalTime - finish); 
    TimeSpan remainingtime = TimeSpan.FromSeconds(remaingsec); 
    string answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s", 
        remainingtime.Hours , 
        remainingtime.Minutes, 
        remainingtime.Seconds, 
        remainingtime.Milliseconds); 

    LIteral2.Text = answer; 
     if (totalTime == finish) 
     { 
      lnkFinish_Click(sender, e); 
      Response.Redirect(@"~/Error.aspx"); 

     } 
+0

संदर्भ [यह] (http://www.c-sharpcorner.com/UploadFile/babzi.naaz/3800/?ArticleID=c62a44ff-87cb-4a00-9956-8ed42bc4ce31) लिंक – MAC

उत्तर

1

मेरे राय उलटी गिनती (और साथ एम्बेडेड) के लिए जावास्क्रिप्ट का उपयोग करने के लिए और json, के साथ अपने DB डेटा पास करने के लिए जब डीबी कारण वियोग आप जावास्क्रिप्ट करने के लिए कुछ डेटा पास है और एक नियंत्रण के साथ आप उलटी गिनती के लिए प्रक्रिया।

निम्नलिखित जावास्क्रिप्ट फ़ाइल डाउनलोड करें और अपने वेब अनुप्रयोग निर्देशिका में डाल दिया: http://scripts.hashemian.com/js/countdown.js

और कुछ इस तरह का उपयोग की तुलना में:

<script type="text/javascript"> 
     TargetDate = "12/25/207 12:01 AM"; 
     BackColor = "red"; 
     ForeColor = "white"; 
     CountActive = true; 
     CountStepper = -1; 
     LeadingZero = true; 
     DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds."; 
     FinishMessage = "It is here!"; 
    </script> 
1

मैं अपने बेहतर लगता है तालिका में एक क्षेत्र लेते हैं और इसे में प्रश्न के लिए कुल समय निर्धारित है और हर 15/30 सेकंड पर उस क्षेत्र अद्यतन (आपके अपेक्षित आवृत्ति के अनुसार) के लिए और हर अद्यतन पर मूल्य घटाना 15/कुल समय से 30 सेकंड। और जब तक फ़ील्ड का मूल्य न हो> 0.

इसके लिए आप टाइमर (जावास्क्रिप्ट टाइमर) और AJAX की सहायता ले सकते हैं। उस क्षेत्र को अद्यतन करने के लिए सर्वर को अनुरोध भेजने के लिए।

AJAX के साथ मुझे लगता है कि यह एक webservice बनाने के लिए बेहतर है (जो उस फ़ील्ड का मान अपडेट करेगा) और इसे जावास्क्रिप्ट टाइमर के आधार पर AJAX का उपयोग करके कॉल करें। अच्छी तरह से आप AJAX टाइमर का भी उपयोग कर सकते हैं।

जावास्क्रिप्ट टाइमर संदर्भ:

http://dotnetacademy.blogspot.com/2010/09/timer-in-javascript.html

+0

हाँ, यह शायद सबसे अच्छा है जावास्क्रिप्ट के लिए रास्ता और सर्वर हमेशा यह जानना कि दूसरा एक चल रहा है। हालांकि, आपको यह पता होना चाहिए कि कोई उपयोगकर्ता जावास्क्रिप्ट को अक्षम कर सकता है, और एक दुर्भावनापूर्ण उपयोगकर्ता वेब सेवा पर नकली अनुरोध भेज सकता है। – tster

0

आप काउंटर स्टोर करने के लिए खिड़कियों registery उपयोग कर सकते हैं।

+0

किसी वेब पेज से नहीं .... इसके अलावा, मुझे लगता है कि इन चीजों के लिए रजिस्ट्री का उपयोग इन दिनों पर फंस गया है। – tster

संबंधित मुद्दे