سؤال

لا أحد يعرف كيفية مراقبة العمليات من جانب الخادم المستمرة منذ فترة طويلة في GWT، وغيرها من الاقتراع الخادم؟ نحن بحاجة إلى القيام ببعض تستغرق وقتا طويلا، متعددة الخطوات، ومعالجة / O-المربوطة على الخادم، وسيكون من الجميل لعرض تقدم هذه المعالجة في المتصفح.

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

المحلول

وهذا من السهل إلى حد ما في التعامل مع GWT.

وهذه العملية مستمرة منذ فترة طويلة إما تشغيلها بواسطة استدعاء RPC GWT، وفي هذه الحالة لديك نقطة الدخول الخاصة بك، أو لم يكن، وفي هذه الحالة عليك أن تبدأ هذا الخروج يدويا.

وتذكر أن المكالمات GWT RPC هي غير متزامن بحيث لا تحتاج إلى العودة فورا. تحتاج مكالمة RPC مثل checkStatus(). لذلك يمكنك أن تفعل أشياء مثل:

public class JobStatus {
  private boolean done;
  // other info
  // ...
}

public class JobStatusCallback<JobStatus> extends AsyncCallback {
    public final void onSuccess(JobStatus result) {
       if (result.isDone()) {
            done();
        } else {
            checkAgain();
        }
    }

    public final void onFailure(Throwable caught) {
       error(caught);
       checkAgain();
    }

    public void done() { // override
    }

    public void checkAgain() {
        service.checkStatus(this);
    }

    public void error(Thorwable t) { // override
    }
});

ووفي خدمة RPC الخاص بك:

void checkStatus(AsyncCallback<JobStatus> callback);

والخادم الخاص بك يمكن أن تتخذ طالما أنه يحب (في حدود المعقول) للعودة من checkStatus (). ويمكن أن يعود لانجاز المهمة أو فقط مع التحديث حالة مهمة. وستواصل فوق حلقات حتى يتم تعيين علامة حالة مهمة القيام به.

نصائح أخرى

واعتقد ان ذلك يتوقف على عملية الخاص بك ولكن إذا كنت تنوي القيام به شيء من هذا القبيل الجري البيانات يمكنك استخدام دفع خادم (أو المذنب) technic.GWT يدعم تنفيذ المذنب. جوجل GWT + المذنب، أو GWT + COMET + القط، وأنا أقرأ عن المذنب ومنسوب المياه الجوفية في "جوجل أدوات الويب تطبيقات" كتاب (gwtapps.com).

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