浏览代码

Bootstrap Table Defer URL Extension

When using server-side processing, the default mode of operation for
bootstrap-table is to simply throw away any data that currently exists
in the table and make a request to the server to get the first page of
data to display. This is fine for an empty table, but if you already
have the first page of data displayed in the plain HTML, it is a waste
of resources. As such, you can use data-defer-url instead of data-url to
allow you to instruct bootstrap-table to not make that initial request,
rather it will use the data already on the page.
ruben.suarez 9 年之前
父节点
当前提交
2947d1fb8a

文件差异内容过多而无法显示
+ 17 - 0
src/extensions/defer-url/README.md


+ 37 - 0
src/extensions/defer-url/bootstrap-table-defer-url.js

@@ -0,0 +1,37 @@
+/**
+ * When using server-side processing, the default mode of operation for
+ * bootstrap-table is to simply throw away any data that currently exists in the
+ * table and make a request to the server to get the first page of data to
+ * display. This is fine for an empty table, but if you already have the first
+ * page of data displayed in the plain HTML, it is a waste of resources. As
+ * such, you can use data-defer-url instead of data-url to allow you to instruct
+ * bootstrap-table to not make that initial request, rather it will use the data
+ * already on the page.
+ * 
+ * @author: Ruben Suarez
+ * @webSite: http://rubensa.eu.org
+ * @version: v1.0.0
+ */
+
+(function($) {
+    'use strict';
+
+    $.extend($.fn.bootstrapTable.defaults, {
+        deferUrl : undefined
+    });
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor, _init = BootstrapTable.prototype.init;
+
+    BootstrapTable.prototype.init = function() {
+        _init.apply(this, Array.prototype.slice.apply(arguments));
+
+        if (this.options.deferUrl) {
+            this.options.url = this.options.deferUrl;
+        }
+
+        // reset variable to original initServer function, so that future calls
+        // to initServer
+        // use the original function from this point on.
+        BootstrapTable.prototype.initServer = _initServer;
+    }
+})(jQuery);

+ 17 - 0
src/extensions/defer-url/extension.json

@@ -0,0 +1,17 @@
+{
+  "name": "DeferURL",
+  "version": "1.0.0",
+  "description": "Plugin to defer server side processing.",
+  "url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/defer-url",
+  "example": "http://issues.wenzhixin.net.cn/bootstrap-table/#extensions/defer-url.html",
+
+  "plugins": [{
+    "name": "bootstrap-table-defer-url",
+    "url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/defer-url"
+  }],
+
+  "author": {
+    "name": "rubensa",
+    "image": "https://avatars1.githubusercontent.com/u/1469340"
+  }
+}