Điểm:1

Cách hiển thị thanh tiến trình hai lần trên một yêu cầu (với Batch API)

lá cờ ng
863

Tôi có một biểu mẫu tùy chỉnh xử lý hai quy trình khác nhau sau khi gửi, giả sử

  • Quy trình 1: xóa tất cả các nút bài viết
  • Quá trình 2: nhập các nút bài viết từ csv.

Vấn đề là mỗi quy trình phải có thanh tiến trình riêng. Vì vậy, nó sẽ giống như:

  • Biểu mẫu đã gửi
  • Thanh tiến trình cho quá trình 1 bắt đầu (0%)
  • Thanh tiến trình cho quá trình 1 kết thúc (100%)
  • Thanh tiến trình cho quá trình 2 bắt đầu (0%)
  • Thanh tiến trình cho quá trình 2 kết thúc (100%)
  • Chuyển hướng đến biểu mẫu

Nếu tôi thêm lô_set() hai lần trong trình xử lý gửi, cả hai quá trình đều được thực thi nhưng thanh tiến trình chỉ xuất hiện một lần.

// Tạo hai lô khác nhau.

hàm tĩnh công khai getBatch1() {
    $batch_builder = BatchBuilder mới();
    $batch_builder->setTitle('Quy trình 1')
    $batch_builder->addOperation(
        [bản thân::lớp, 'tiến trìnhCallback1'],
      );
    trả về $batch_builder->toArray();
  }

hàm tĩnh công khai getBatch2() {
    $batch_builder = BatchBuilder mới();
    $batch_builder->setTitle('Quy trình 2')
    $batch_builder->addOperation(
        [bản thân::lớp, 'tiến trìnhCallback2'],
      );
    trả về $batch_builder->toArray();
  }
// Trình xử lý gửi biểu mẫu tùy chỉnh.
hàm công khai submitForm() {
 batch_set(MyBatchClass::getBatch1());
 batch_set(MyBatchClass::getBatch2());
}

Nó thực sự trông giống như:

  • Biểu mẫu đã gửi
  • Thanh tiến trình cho quá trình 1 bắt đầu (0%)
  • Thanh tiến trình cho quá trình 1 kết thúc (100%) <- quá trình 2 cũng kết thúc ở chế độ nền
  • Chuyển hướng đến biểu mẫu

Làm cách nào tôi có thể khởi động lại thanh tiến trình khi quá trình thứ hai bắt đầu?

hotwebmatter avatar
lá cờ nr
Hãy thử triển khai từng quy trình API hàng loạt trong lớp riêng của nó.
lá cờ gb
@863, bạn có thể chia sẻ mã cho lệnh gọi lại hàng loạt processCallback1, processCallback2 không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.