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

  • 相关阅读:
    Linux运维系列一 CentOS 7桌面系统加入到Samba4 AD域环境中
    Django 系列一 (创建第一个工程)
    提高运维效率(二)桌面显示IP
    提高运维效率(一)远程管理
    python group()
    【原创】我所理解的资源加载方式
    【原创】我所理解的自动更新-知识点讲解
    【原创】我所理解的自动更新-客户端更新流程
    【原创】我所理解的自动更新-资源打包流程
    【原创】我所理解的自动更新-APP发布与后台发布
  • 原文地址:https://www.cnblogs.com/hubing/p/4489791.html
Copyright © 2011-2022 走看看