zoukankan      html  css  js  c++  java
  • DataTables ajax重新加载数据

    传数据给后台返回数据,最开始的办法是

    重新生成一个datatable对象,但是在每次点击刷新时都会有闪动的现象,而且代价很高。理想中应该仅仅更新数据。

    最后在文档中查到一个插件fnReloadAjax加入文件

    $.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw )

    {

        if ( sNewSource !== undefined && s NewSource !== null ) {

            oSettings.sAjaxSource = sNewSource;

        }

        // Server-side processing should just call fnDraw

        if ( oSettings.oFeatures.bServerSide ) {

            this.fnDraw();

            return;

        }

        this.oApi._fnProcessingDisplay( oSettings, true );

        var that = this;

        var iStart = oSettings._iDisplayStart;

        var aData = [];

        this.oApi._fnServerParams( oSettings, aData );

        oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, aData, function(json) {

            /* Clear the old information from the table */

            that.oApi._fnClearTable( oSettings );

            /* Got the data - add it to the table */

            var aData =  (oSettings.sAjaxDataProp !== "") ?

                that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json;

            for ( var i=0 ; i<aData.length ; i++ )

            {

                that.oApi._fnAddData( oSettings, aData[i] );

            }

            oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();

            that.fnDraw();

            if ( bStandingRedraw === true )

            {

                oSettings._iDisplayStart = iStart;

                that.oApi._fnCalculateEnd( oSettings );

                that.fnDraw( false );

            }

            that.oApi._fnProcessingDisplay( oSettings, false );

            /* Callback user function - for event handlers etc */

            if ( typeof fnCallback == 'function' && fnCallback !== null )

            {

                fnCallback( oSettings );

            }

        }, oSettings );

    };

    使用方法

    oTable.fnReloadAjax('pages/getPlayerNewData.php);

    oTable.fnReloadAjax(); //使用默认

    http://yuklog.lofter.com/post/70cbd_8b6706

  • 相关阅读:
    数据的独立同分布检验
    基于密度聚类的DBSCAN和kmeans算法比较
    Python 爬虫笔记、多线程、xml解析、基础笔记(不定时更新)
    多进程之multiprocessing模块、守护进程、互斥锁
    程序与进程的区别,并发与并行的区别,多进程的实现原理
    并发编程之守护进程
    MySQL帮助文档的使用
    MySQL操作之DCL
    MySQL操作之DML
    MySQL操作之DDL
  • 原文地址:https://www.cnblogs.com/hubing/p/4489791.html
Copyright © 2011-2022 走看看