• 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

  • 相关阅读:
    python多版本与虚拟环境
    前端开发:基于cypress的自动化实践
    Selenium 4.0beta:读源码学习新功能
    Selenium 4.0beta: Grid 工作原理
    自己上手写性能工具(三)
    如何实现共享屏幕标注功能?
    资源下载网站
    修改tmux背景色
    使用nas唤醒其他PC主机
    2021.26 富兰克林效应
  • 原文地址:https://www.cnblogs.com/hubing/p/4489791.html
Copyright © 2020-2023  润新知