docs: function asyncLoad(pageletIDs, param) {
          if (!(pageletIDs instanceof Array)) {
              pageletIDs = [pageletIDs];
          }
  
          var i, args = [],
              currentPageUrl = location.href;
          for(i = pageletIDs.length - 1; i >= 0; i--) {
              var id = pageletIDs[i].id;
              if (!id) {
                  throw Error('[BigPipe] missing pagelet id');
              }
              args.push('pagelets[]=' + id);
          }
  
          param = param ? '&' + param : '';
  
          var url = location.href.split('#')[0] + '&' + args.join('&') + '&force_mode=1&is_widget=true' +param;
  
          // 异步请求pagelets
          ajax(url, function(res) {
              // 如果数据返回回来前，发生切页，则不再处理，否则当前页面有可能被干掉
              if(currentPageUrl !== location.href) {
                  return;
              }
  
              var data = parseJSON(res);
              resource = data;
              pageUrl = url;
              pagelets = data.pagelets;
              process(data.resource_map, function() {
                  render();
              });
          });
      }