【发布时间】:2016-06-06 12:17:11
【问题描述】:
我现在有这个代码:
define([
"dojo/_base/declare",
"dojox/data/JsonRestStore",
"dojox/grid/LazyTreeGrid",
"dojox/grid/LazyTreeGridStoreModel"
], function(
declare,
JsonRestStore,
LazyTreeGrid,
LazyTreeGridStoreModel
) {
var layout = { ... },
store = new JsonRestStore({
target: "/api/items" // for example
limitParam: "limit",
offsetParam: "offset"
}),
model = new LazyTreeGridStoreModel({
serverStore: true,
store: store,
childrenAttrs: [ "children" ]
});
return declare("CustomTreeGrid", [ LazyTreeGrid ], {
treeModel: model,
structure: layout
});
});
我的小部件在启动后向目标 URL 发送数千个请求并冻结我的浏览器。如何修复错误行为并保存与 RESTful API 的兼容性?
使用 QueryReadStore 的解决方案有效,但不适用于我的情况 - Django REST 框架返回页面,并在 GET 请求上声明 API。
服务器以 JSON 格式返回数据:
{
"items": [ ] //Array of items
"identifier": "id",
"numRows": 12 // Total count of items
}
我还更改了返回数组的服务器响应。响应标头还包含键“Content-Range: 0-2/3”(例如),它对我不起作用。
服务器响应标头:
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Range: items 0-1/2
Content-Type: application/json
Vary: accept
服务器响应正文:
[
{
"id": 1,
"children": false,
"name": "name1"
},
{
"id": 2,
"children": false,
"name": "name2"
}
]
【问题讨论】:
-
你认为你可以以某种方式暴露后端吗?在无法调试的情况下帮助您很难。另外,很高兴看到布局,所以我们可以制作一个有效的 sn-p
-
后端是用 Django REST 框架编写的。用户拥有所有权限,在启动小部件后向 API URL 创建数千个请求。服务器返回每个响应的数组,并且网格是空的。
-
这不是我的意思。实际上,您的问题没有足够的细节来帮助您。您需要共享后端响应的示例、前端正在调用的 url、您正在使用的布局......
标签: dojo