Rumah  >  Soal Jawab  >  teks badan

java - web端百度网盘的一个操作为什么要分两次请求服务器, 有什么好处吗

以 文件重命名 为例:

返回如下结果

{
  "errno": 0,
  "info": [],
  "request_id": 88137407060055336,
  "taskid": 307843054247316
}

可以联想到在server端建立了一个task, 并返回了taskid让客户端后续取状态来更新ui

#进行中的返回值
{
  "errno": 0,
  "request_id": 88137707954758994,
  "task_errno": 0,
  "status": "pending"
}

#进行中
{
  "errno": 0,
  "request_id": 88137707954758994,
  "task_errno": 0,
  "status": "running"
}


#操作成功的返回值
{
  "errno": 0,
  "request_id": 88138584419582326,
  "task_errno": 0,
  "status": "success",
  "list": [
    {
      "from": "/test1/我的照片",
      "to": "/test1/我的照片2"
    }
  ],
  "total": 1
}

当 status 为success时候, 则轮询结束, 更新UI元素

问题: 直接访问重命名接口不行吗? 为什么要这么设计, 好处是什么?

迷茫迷茫2722 hari yang lalu852

membalas semua(3)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:50:35

    Anda telah menjelaskannya dengan sangat jelas.

    Kali pertama adalah untuk memulakan aplikasi pertukaran nama ke pelayan.
    Pelayan akan memulakan tugas.
    Tinjauan berikutnya adalah untuk menyemak sama ada tugasan telah selesai, dan bahagian hadapan akan melakukan operasi yang sepadan selepas selesai.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:50:35

    Teka sebabnya: Dalam kes yang melampau, operasi mungkin mengambil masa yang lama dan tidak dapat dikembalikan dengan segera Apabila operasi selesai, pautan soket mungkin telah diputuskan dan hasil akhir tidak boleh diperolehi , ia boleh Memastikan pelanggan mendapat keputusan akhir.

    balas
    0
  • PHPz

    PHPz2017-04-18 10:50:35

    Selain pertimbangan di atas, mungkin terdapat satu lagi sebab yang sangat penting, dan itu adalah tekanan serentak. Dibuat tak segerak, ia boleh menyelesaikan konkurensi

    balas
    0
  • Batalbalas