2012-03-14 17 views
6

के साथ लोडिंग पेज कैसे लिख सकता हूं, मैं एक पृष्ठ को कार्यान्वित करना चाहता हूं जो कि सिस्टम कमांड चलाए जाने पर उपयोगकर्ता को प्रदर्शित किया जाए। जैसे ही आदेश पूरा करता है उपयोगकर्ता को दूसरे पृष्ठ पर भेज दिया जाना चाहिए।मैं प्ले फ्रेमवर्क

इसे लागू करने के लिए कुछ रणनीतियां क्या हैं?

(जावास्क्रिप्ट के बिना एक समाधान आदर्श होगा)

उत्तर

4

यह निश्चित रूप से किया जा सकता है। आप प्रलेखन में Asynchronous programming with HTTP को देखना चाहते हैं, यह बताता है कि इसे गैर-अवरुद्ध तरीके से कैसे किया जाए। हालांकि आपको पुनर्निर्देशित भाग के लिए जावास्क्रिप्ट की थोड़ी सी आवश्यकता होगी।

और मुझे नहीं पता कि "सिस्टम कमांड" के साथ आपका क्या मतलब है लेकिन आप शायद इसके लिए create a job चाहते हैं, ताकि आप इसे अनुरोध के साथ ट्रिगर कर सकें। इसके बाद आप poll it कर सकते हैं जब तक कि यह समाप्त नहीं हो जाता है और फिर उपयोगकर्ता को रीडायरेक्ट कर देता है। लेकिन वास्तव में दस्तावेज इसे समझाने में असीम रूप से बेहतर काम करता है तो मैं अब कर रहा हूं।

यहां एक नियंत्रक कार्रवाई का एक उदाहरण दिया गया है जहां मुझे लगता है कि आपका सिस्टम कमांड उपयोगकर्ता के लिए किसी प्रकार का स्ट्रिंग आउटपुट देता है। जब नौकरी पूरी हो जाती है तो यह उपयोगकर्ता को प्रतिक्रिया भेजी जाएगी, इस प्रकार जावास्क्रिप्ट उदाहरण में सफलता हैंडलर को ट्रिगर कर देगा।

public static void executeSystemCommand(String input) { 
    Promise<String> outputPromise = new SystemCommandJob(input).now(); 
    String output = await(outputPromise); 
    renderText(output); 
} 

मूल रूप से आप उपयोग कर रहे हैं jQuery के $.ajax आप डेटा मतदान पर पूरा घटना का उपयोग कर सकते है (बस अनुरोध फिर अगर यह समय समाप्ति समय के भीतर सफल नहीं हुआ करते हैं) और सफलता का उपयोग/उपयोगकर्ता को रीडायरेक्ट करने के लिए किया गया जब एप्लिकेशन यह इंगित करता है कि "सिस्टम कमांड" चल रहा है। एक समारोह के

उदाहरण आप इस्तेमाल कर सकते हैं:

function poll(){ 
    $.ajax({ 
     url: "/systemcommand", 
     success: function(data){ 
      // redirect to next page here 
      document.location.href = '/output' 
     }, 
     complete: poll, 
     timeout: 20000 
    }); 
}; 

StackOverflow पर जावास्क्रिप्ट में भी a great example on long polling नहीं है।

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