ajax获取数据更新table以后,jquery.datatable的js效果失效了该怎么办呀QAQ?

用了jquery的模板表格,如果table里面放的是静态数据的话,选择展示多少条数据、搜索表格内容的功能都是正常的。
但用ajax从后台获取实际上的数据,append到tbody里面这样的形式后,就发现上面这些功能都失效了。

菜鸡学艺不精,网上的方法都试过了,都不行。
感觉好像是同步异步的问题,但不知道该怎么解决,求大佬指路QAQ。

这个是html:

<div class="table-responsive">
    <table id="dataTable1" width="100%" class="table table-striped table-lightfont" style="font-size: 15pt">
        <thead >

        <!-- 第二版结果展示 -->
            <tr>
                <!-- <th>ID</th> -->
                <th>站名</th>
                <th>设备名称</th>
                <th>电压等级</th>                               
                <th>采样时间</th>                               
                <th>相位</th>
                <th>最大过电压(kV)</th>
            </tr>   
            <!-- ID,站名,设备名称,电压等级,采样时间,相位,最大电压值 -->
        </thead>
        <tfoot>

            <!-- 第二版结果展示 -->
            <tr>
                <!-- <th>ID</th> -->
                <th>站名</th>
                </th>设备名称</th>
                <th>电压等级</th>                               
                <th>采样时间</th>                               
                <th>相位</th>
                <th>最大过电压(kV)</th>
            </tr>   
        </tfoot>
        <tbody  id="searchBody">

        </tbody>
        </table>
</div>

这个是js:

function search() {
    //alert($("#station").val())

    var station = $("#station").val()
    var start_time = $("#start_time").val()
    //alert(start_time.toUpperCase)
    var end_time = $("#end_time").val()
    var start_hour = $("#start_hour").val()
    alert(start_time.toUpperCase)
    var end_hour = $("#end_hour").val()
    var level = $("#selectLevel").val()

    var flag = false;    //标识,表示页面上数据还未处理完成
    $.ajax({
        type : "get",
        url : "observe/search",
        data : $("#searchForm").serialize(),
        success : function(data) {
            /*table = $('#dataTable1').DataTable( {
                    retrieve: true,
                    destroy:true,
                    paging: false
            } );*/

            //alert("sucess!")
            //var length=getJsonLength(data);
            console.log(data)
            var arrData = eval(data);

            //alert(data[0].sampdate)
            var searchBody = $("#searchBody");
            $("#searchBody").html("");
            //var dataTable1 = $("dataTable1");
            //$("#dataTable1").html("");

            //var bodyInfo="";
            //var tableInfo="";

            if (data) {
                for (var i = 0; i < arrData.length; i++) {
                    //ID,站名,设备名称,电压等级,采样时间,相位,最大电压值 
                    var row = “【不重要,略过】";
                    searchBody.append(row);
                    //bodyInfo+=row;
                }
                flag=true;

            }

            else {
                alert("数据库故障或无数据!");
            }
        }
    });

    var loadFile;
    loadFile = setInterval(function() {//定时检测    
        if(flag) {//如果数据已经处理完毕
            //loadAlljscssFile();
            loadjscssfile('static/js/jquery-3.2.1.min.js', "js"); //加载你的js文件
                loadjscssfile('static/bootstrap-3.3.7/css/bootstrap.min.css', "css"); //加载你的css文件
                loadjscssfile('static/bootstrap-3.3.7/js/bootstrap.min.js', "js"); //加载你的js文件
                loadjscssfile('bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css', "css"); //加载你的js文件
                loadjscssfile('bower_components/datatables.net/js/jquery.dataTables.min.js', "js"); //加载你的js文件

                clearTimeout();//取消定时检测节省开销
                }
        },50);

}

1个回答

首先,DataTables.js 插件本身是可以接收 ajax 请求的:

return $("#"+tableId).DataTable({
        "dom": 'lrtip',
        "searching": false,
        "processing": true,
        "serverSide":true,
        "sAjaxSource": ajaxRequestUrl,
        "columns":columns,
        "ordering":false,
        "bDestroy":true,
        "language": {
            "sProcessing":"加载中...",
            "lengthMenu": "每页显示 _MENU_ 项记录",
            "zeroRecords": "没有找到记录",
            "info": "第 _START_ 到 _END_ 项记录 (共 _TOTAL_ 项记录)",
            "infoEmpty": "没有记录",
            "sInfoFiltered": "(全部记录数 _MAX_ 条)",
            "paginate": {
                "first":      "第一页",
                "last":       "最末页",
                "next":       "下一页",
                "previous":   "上一页"
            }
        }
    });

用这种方式直接对列表通过 ajax 请求数据初始化即可。
其次,如果需要执行页面刷新请求,或者按钮搜索,可以再调用一次该方法,重新渲染列表。ajaxRequestUrl 和 columns 是 参数。

wojiushiwo945you
毕小宝 回复Belinda_YZ: ajaxRequestUrl, 这个直接通过URL 方式自动请求数据的。
6 个月之前 回复
qq_38427979
Belinda_YZ 请问向后台传入的数据放在哪个参数里面呢?
6 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 正解,如果满意请点采纳,谢谢
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
datatables.min.js 重新绑定datatable的数据

使用datatables.min.js进行table的分页, 筛选后重新从后台查询数据修改table信息, 但是datatable的绑定信息没有被修改, 还是第一次的table内容, 网上找的"bDestroy": true,也没有效果, 请各位大神帮忙看看. 谢谢! ``` function GetList() { var UserName = $("#txt_keyword").val(); var selectId = $("#AccountSelect").val(); $.ajax({ type: "POST", url: "/Backstage/SystemManage/GetUserForAjax", data: { UserName: UserName, selectId: selectId }, success: function (result) { html = ""; if (selectId != -1) { //$('.table').dataTable().fnClearTable(); //将数据清除 } if (result.State == 0 && result.Data.length > 0) { for (var i = 0; i < result.Data.length; i++) { html += "<tr>"; html += "<td><input type=\"checkbox\" value=\"" + result.Data[i].Id + "\" class=\"i-checks\" name=\"input[]\"></td>"; html += "<td><small>" + result.Data[i].Account + "</small></td>"; html += "<td><small>" + result.Data[i].RealName + " </small></td>"; html += "</tr>"; } } $("#tbodyDept").html(html); //$('.table').dataTable().fnRecordsDisplay(); //$(".table").dataTable().fnDraw(); var table = $('.table').dataTable({ "bFilter": false, //过滤功能 "bDestroy": true, "bSort": false, //排序功能 "bLengthChange": false, //改变每页显示数据数量 //"bDeferRender": true, "bPaginate": true, //开启分页功能,如果不开启,将会全部显示 "bProcessing": true, //"bInfo": true, "iDisplayLength": 5, "oLanguage": { "sZeroRecords": "没有找到符合条件的数据", "sProcessing": "<img src=’./Content/InspiniaAdmin/css/plugins/blueimp/img/loading.gif’ />", "sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条", "sInfoEmpty": "没有记录", "oPaginate": { "sFirst": "首页", "sPrevious": "前一页", "sNext": "后一页", "sLast": "尾页" } } }); ```

jQuery的datatable更新问题

function getProvince() { var province=document.getElementById("selProvince").value; $('#buchongList').dataTable().fnClearTable(); $.ajax({ type: "post", url: "/IotCloud-bugtrapper-service/rest/dynamic/listDynamicData", datatype: "json", data: { "time_type":"0", "filter_province":"10" }, success: function (data) { info = data.data; table = $('#buchongList').DataTable({ "filter": [ 6, false ], "bPaginate": true, "pagingType": "full_numbers", "bFilter": true, "bLengthChange": true, "bDestroy":true, "bInfo": true, "bSort": true, "retrieve":true, "oLanguage": { "sZeroRecords": "没有数据", "oPaginate": { "sFirst": "首页", "sPrevious": "前一页", "sNext": "后一页", "sLast": "尾页" } }, "columnDefs": [ { "targets": [12], "defaultContent": "<button id='shuju' style='cursor:pointer;color:#009ACD; margin-left:20px; background-color:transparent;border:none;outline:none;'><img src='img/icon2.png'></button>" + "<button id='download' style='cursor:pointer;color:#009ACD; margin-left:0px; background-color:transparent;border:none;outline:none;'><img src='img/icon1.png'></button>"+ "<button id='reset' style='cursor:pointer;color:#009ACD; margin-left:0px; background-color:transparent;border:none;outline:none;'><img src='img/icon3.png'></button>" }, {"orderable":false,"targets":[3,4,5] }, {"targets": [ 0 ], "visible": false}, ], data:info, columns: [ {data: ''}, {data: 'gatewayId'}, {data: "trapperUnitId"}, {data: 'trapperName'}, {data: 'locationName'}, {data: 'trapperAddr'}, {data: 'temp'}, {data: 'humidity'}, {data: 'windSpeed'}, {data: 'lightSource'}, {data: 'rainfall'}, {data: 'bugCount'} ] }); } }) } 要实现table更新。我先clear了表格,然后却加载不出数据了?求大神解释,谢谢。

jquery datatable 刷新问题

``` 最近项目使用datatable,但是刷新遇到了问题,试过fnDraw等函数没有反应,datatable官方api是用ajxa.reload,但是会报没有定义ajax。 还有这个api解释中: var table = $('#example').DataTable( { ajax: "data.json" } ); setInterval( function () { table.ajax.reload(); }, 30000 ); data.json我不太明白是哪个数据,是重新刷新要赋给的数据?,那要怎么传进去呢 下面贴一下我的代码: jQuery.ajaxSetup({ headers: { Authorization: 'MDphZG1pbg=='} }); jQuery(function($) { oTable1 = $('#sample-table-2').DataTable( { /*"columnDefs": [{ "defaultContent": "-", "targets": "_all" }],*/ "sAjaxDataProp":"data", ajax: aa, /*"sPaginationType": "full_numbers",*/ /*"sAjaxSource":"http://123.56.93.33:8088/kiunion-data-provider/ws/users/1",*/ "sAjaxSource":"http://123.56.93.33:8088/kiunionSer/ws/v1.0/vehicleBaseInfo/searchByEnterprise?enterpriseId=1", "bProcessing" : true, "bServerSide": true, "bAutoWidth":true, "fnServerData": function ( sSource, aoData, fnCallback ) { $.ajax( { "dataType": 'json', "type": "GET", "url": sSource, "data": aoData, "success":fnCallback, } ); "aoColumns": [ { mData: 'VehicleID' }, { mData: 'VehicleID' }, { mData: 'StatusID' }, { mData: 'PlateNumber' }, { mData: 'SeqNumber' }, { mData: 'TeamID' }, { mData: 'VehicleID' } ], "aoColumnDefs": [ { "aTargets": [0], "mRender": function(data, type, full) { return "<td><label><input type='checkbox'class='ace' /><span class='lbl'></span></label></td>"; } }, ], "aLengthMenu": [10,20,30,40,50, 100], "oLanguage": { "sLengthMenu": "每页显示 _MENU_ 条记录", "sZeroRecords": "抱歉, 没有找到", "sInfo": "从 _START_ 到 _END_ /共 _TOTAL_ 条数据", "sInfoEmpty": "没有数据", "sInfoFiltered": "(从 _MAX_ 条数据中检索)", "oPaginate": { "sFirst": "首页", "sPrevious": "前一页", "sNext": "后一页", "sLast": "尾页" }, "sZeroRecords": "没有检索到数据", "sProcessing": "<img src=’./loading.gif’ />" } } ); $("#acecom").on('click',function(){ console.log("reload"); oTable1.ajax.reload(); }) }) ```

Jquery的DataTable可以从缓存里面绑定数据吗?

that.WarrantyStatusEditCtrl = function($scope, $compile, $routeParams, $location, $log, apiService, columns, cacheService, commonUtils, DT_OPTION, WARRANTY_HEADER, $rootScope) { $scope.header = WARRANTY_HEADER.STATUS_EDIT; $scope.base = base; var updateObj = {}; var columnDefs = []; var currentStatus = $routeParams.status.substr(1); // 隐藏データチエツクコメント、操作 if (currentStatus === "4" || currentStatus === "5") { columnDefs = [{ "targets": [5], "visible": false, "searchable": false }, { "targets": [6], "visible": false, "searchable": false }]; } // Show【FJ納品手続き】Button if (currentStatus === "3") { $scope.showScheduleBtn = true; } $scope.queryParams = cacheService.cache('tstp.queryParams'); $scope.queryParams.ngFlg = [currentStatus]; $scope.queryParams.tscd = $routeParams.tscd; $scope.queryParams.tpcd = $routeParams.tpcd; var jumpFromCtrl = $rootScope.oldRoute.substr($rootScope.oldRoute.length - 12) ==='/edit/fillin'; if (jumpFromCtrl === false) { $scope.table = $('#dtList').DataTable($.extend({}, DT_OPTION, { // IF14102: 保証作業費請求状況の確認 ajax: apiService.dtAjax("/getRepairDetailInfo", $scope.queryParams, 'e.queryParams', function(data, info) { if (info) { $scope.tsnm = info.tsnm; $scope.tpnm = info.tpnm; cacheService.cache("tstp", { tscd: $routeParams.tscd, tpcd: $routeParams.tpcd, tsnm: $scope.tsnm, tpnm: $scope.tpnm }); } $scope.$apply(); cacheService.cache('warrantyCache.data', data); return data; }), columns: columns.warrantyStatusEdit('/warranty'), columnDefs: columnDefs, createdRow: function(row, data, index) { $compile(angular.element(row).contents())($scope); var selector = $(row).find('select').val(data.ngFlg); var input = $(row).find('input'); if (updateObj[data.mrNo]) { data = updateObj[data.mrNo]; var ngFlg = data.ngFlg; selector.val(ngFlg); if (ngFlg === "2") { input.val(data.ngRiyu); } } if (data.ngFlg !== "2") { input.prop("disabled", true).addClass("readonly"); } selector.on('change', function() { var selectVal = selector.val(); if (selectVal === "2") { input.prop("disabled", false).removeClass("readonly"); } else { input.prop("disabled", true).addClass("readonly"); input.val(""); data.ngRiyu = ""; } if (selectVal !== currentStatus || selectVal === "2") { data.ngFlg = selectVal; updateObj[data.mrNo] = data; } else if (selectVal === currentStatus) { delete updateObj[data.mrNo]; } groupObj(updateObj); }); input.on('change', function() { data.ngRiyu = input.val(); updateObj[data.mrNo] = data; groupObj(updateObj) }); var checkBtn = $(".check button", row); checkBtn.on('click', function() { cacheService.cache('warrantyCache.warranty', data); $location.path("/warranty/" + data.mrNo + "/check"); $scope.$apply(); }); $scope.$apply(); } })); } else { readCache(); } columns: columns.warrantyStatusEdit('/warranty'),//模板 readCache();//读取缓存里面的数据,我用的angularjs的双向绑定可以显示数据,但是工作量比较大模板判断比较多,所有请教下各位大神.

在jQuery datatable的ajax调用中将POST参数发送到PHP

<div class="post-text" itemprop="text"> <p>I want to make a jQuery function in where, getting a value of an input, send it to a PHP file to make a query in mysql and populate a datatable with the information received.</p> <p>Another problem I have is that the table is initialized when the user is logged in and I don't know if that can obstruct the function I want to do.</p> <p>This the table:</p> <p><a href="https://i.stack.imgur.com/oaUKN.png" rel="nofollow noreferrer">Table and button</a></p> <p>This is where I initialize it:</p> <pre><code> $.fn.dataTable.ext.errMode = 'none'; var table = $('#m3_sem').DataTable( { "ajax": "dist/ajax/prueba_m3_sem.php", "paging": false, "ordering": false, "info": false, "searching": false, "columns": [ { "data": "resistencia" }, { "data": "res1" }, { "data": "res2" }, { "data": "res3" }, { "data": "res4" }, { "data": "res5" }, { "data": "res6" }, { "data": "total" } ], "order": [[0, 'asc']], "pagingType": "full_numbers", "language": { "sSearch" : "Buscar:", "lengthMenu": "Mostrando _MENU_ registros por pagina", "zeroRecords": "No hay pedidos pendientes", "info": "Mostrando pagina _PAGE_ de _PAGES_", "infoEmpty": "Sin registros", "infoFiltered": "(Filtrados de _MAX_ registros totales)", "paginate" : { "first" : "Primera pagina", "previous" : "Anterior", "next" : "Siguiente", "last" : "Ultima pagina" } } }); } ); </code></pre> <p>And this is the PHP file "prueba_m3_sem.php", it generates the JSON I use to populate the table:</p> <pre><code>$sql = "SELECT DISTINCT resistencia "; $sql.= "FROM registros ORDER BY resistencia"; $query=mysqli_query($conexion, $sql) or die("ajax-grid-data.php: get PO"); $data = array(); while( $row=mysqli_fetch_array($query) ) { $sumtot = 0; $nestedData=array(); $nestedData["resistencia"] = $row["resistencia"]; $sqld = "SELECT DISTINCT(fecha_entrega) FROM registros where sem_entrega = ".date("W")." and YEAR(fecha_entrega) = ".date("Y")." ORDER BY fecha_entrega"; $queryd=mysqli_query($conexion, $sqld) or die("ajax-grid-data.php: get PO"); $count = 0; $tot = 0; while( $rowd=mysqli_fetch_array($queryd) ) { $count++; $m3tot = 0; $sqlm = "SELECT m3 FROM registros WHERE fecha_entrega = '".$rowd["fecha_entrega"]."' AND resistencia =".$row["resistencia"].""; $querym=mysqli_query($conexion, $sqlm) or die("ajax-grid-data.php: get PO"); while( $rowm=mysqli_fetch_array($querym) ) { if (empty($rowm['m3'])){ $m3 = 0; }else{ $m3 = $rowm["m3"]; } $m3tot = $m3tot + $m3; } $tot = $tot + $m3tot; $nestedData["res".$count] = $m3tot; $sumtot = $sumtot + $m3tot; } $nestedData["total"] = "&lt;b&gt;".$sumtot."&lt;/b&gt;"; $data[] = $nestedData; } $sqld2 = "SELECT DISTINCT(fecha_entrega) as fecha FROM registros where sem_entrega = ".date("W")." and YEAR(fecha_entrega) = ".date("Y")." ORDER BY fecha_entrega"; //echo $sqld; $queryd2=mysqli_query($conexion, $sqld2) or die("ajax-grid-data.php: get PO"); $totm3 = 0; $nestedData["resistencia"] = "&lt;b&gt;Total&lt;/b&gt;"; $count = 0; while( $rowd2=mysqli_fetch_array($queryd2) ) { //echo $rowd["fecha"]."&lt;/br&gt;"; $sqltot = "SELECT SUM(m3) AS m3 from registros WHERE fecha_entrega ='".$rowd2["fecha"]."'"; $querytot=mysqli_query($conexion, $sqltot) or die("ajax-grid-data.php: get PO"); while( $rowtot=mysqli_fetch_array($querytot) ){ $count ++; //echo $rowtot["m3"]."&lt;/br&gt;" $nestedData["res".$count] = "&lt;b&gt;".$rowtot["m3"]."&lt;/b&gt;"; $totm3 = $totm3 + $rowtot["m3"]; } } $nestedData["total"] = "&lt;b&gt;".$totm3."&lt;/b&gt;"; $data[] = $nestedData; $json_data = array("data" =&gt; $data); echo json_encode($json_data); </code></pre> <p>I've seen some code examples and the datatable documentation but I just can't find something that fits in the function I need or I just don't understand it very well.</p> <p>Also, as you can see, English is not my native language. I hope and you can forgive my misspellings.</p> <p>In advance thanks a lot for your response.</p> </div>

jQuery.dataTables.js插件的样式问题

参考的博文: [jQuery]jQuery DataTables插件自定义Ajax分页实现 - seayxu - 博客园 http://www.cnblogs.com/seayxu/p/5513907.html 使用的后台模板: DataTables | Gentelella https://colorlib.com/polygon/gentelella/tables_dynamic.html # _就我的显示不正常_ ![图片说明](https://img-ask.csdn.net/upload/201707/14/1499998971_519569.png) 博文里的: ![图片说明](https://img-ask.csdn.net/upload/201707/14/1499998992_800222.png) 模板里的: ![图片说明](https://img-ask.csdn.net/upload/201707/14/1499999007_493026.png) 我的js: //初始化表格 function initTable() { table = $("#dataTable").dataTable({ language:lang, //提示信息 autoWidth: false, //禁用自动调整列宽 stripeClasses: ["odd", "even"], //为奇偶行加上样式,兼容不支持CSS伪类的场合 processing: true, //隐藏加载提示,自行处理 serverSide: true, //启用服务器端分页 searching: false, //原生搜索 orderMulti: false, //多列排序 ordering : false, //排序 order: [], //取消默认排序查询,否则复选框一列会出现小箭头 renderer: "bootstrap", //渲染样式:Bootstrap和jquery-ui pagingType: "full_numbers", //分页样式:simple,simple_numbers,full,full_numbers scrollY: "500px", //滚动条 scrollCollapse: "true", columnDefs: [{ "targets": 'nosort', //列的样式名 "orderable": false //包含上样式名‘nosort’的禁止排序 }], ajax: function (data, callback, settings) { $.ajax({ type: "GET", url: "getData", cache: false, //禁用缓存 data: { "page" : (data.start/data.length)+1, "rows" : data.length, }, dataType: "json", success: function (result) { //封装返回数据 var returnData = {}; returnData.draw = data.draw; returnData.recordsTotal = result.totalRecords; returnData.recordsFiltered = result.totalRecords; returnData.data = result.list;//返回的数据列表 console.log(returnData); callback(returnData); } }); }, //列表表头字段 columns: columns_arr }).api(); } 我的html: <!--数据表的内容--> <div style="margin-top: 50px;"> <div class="row"> <div class="col-md-12 col-sm-12 col-xs-12"> <div class="x_panel"> <div class="x_content"> <table id="dataTable" data-reportid="${info.id}" class="table table-striped table-bordered"> <thead> </thead> <tbody> </tbody> </table> </div> </div> </div> </div> </div> <!--/数据表的内容-->

datatables.min.js的使用

使用datatables.min.js对table进行分页处理, 5条一页, 首次登陆界面后台查询9条数据到前台正常显示分为2页, 后修改select控件, 再次调用后台查询到7条数据到前台, 前台报错, 如下图, 而且通过上一页下一页还是可以查询到9条数据, 这是怎么回事, 调试时也检查了后台传递过来的值是7条的.请各位大神帮忙看看, 是不是还有什么属性没有设置, 谢谢! ![图片说明](https://img-ask.csdn.net/upload/201703/15/1489563612_525968.png) ``` function GetList() { var UserName = $("#txt_keyword").val(); var selectId = $("#AccountSelect").val(); $.ajax({ type: "POST", url: "/Backstage/SystemManage/GetUserForAjax", data: { UserName: UserName, selectId: selectId }, success: function (result) { html = ""; $("#tbodyDept").html(html); if (result.State == 0 && result.Data.length > 0) { for (var i = 0; i < result.Data.length; i++) { html += "<tr>"; html += "<td><input type=\"checkbox\" value=\"" + result.Data[i].Id + "\" class=\"i-checks\" name=\"input[]\"></td>"; html += "<td><small>" + result.Data[i].Account + "</small></td>"; html += "<td><small>" + result.Data[i].RealName + " </small></td>"; html += "</tr>"; } } $("#tbodyDept").html(html); $('.table').DataTable({ "iDisplayLength": 5, "bFilter": false, //过滤功能 "bSort": false, //排序功能 "bLengthChange": false, //改变每页显示数据数量 "oLanguage": { "sZeroRecords": "没有找到符合条件的数据", "sProcessing": "<img src=’./Content/InspiniaAdmin/css/plugins/blueimp/img/loading.gif’ />", "sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条", "sInfoEmpty": "没有记录", "oPaginate": { "sFirst": "首页", "sPrevious": "前一页", "sNext": "后一页", "sLast": "尾页" } } }); }, error: function () { $("#tbodyDept").html("<tr><td colspan=\"10\"><small class=\"text-warning\">查询数据出现错误!</small></td></tr>"); } }); } ``` 可能描述的不太清楚, 实现过程就是通过select控件选择重新查询数据.

jQuery.dataTables 配置了ajax属性,但后台没有收到任何请求

小弟新人,以下是我的js代码,但我在后台却没有收到任何请求 ![图片说明](https://img-ask.csdn.net/upload/201708/17/1502959706_466440.jpg) 然后dataTables会有弹窗报错 DataTables warning (table id = 'sample-table-2'): DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.

jqery dataTable请求获取到新数据后,表格不刷新

js代码 ``` var oTable = $('#sample_editable_1').dataTable({ "aLengthMenu": [ [5, 15, 20, -1], [5, 15, 20, "All"] // change per page values here ], // set the initial value "iDisplayLength": 15, "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", "sPaginationType": "bootstrap", "oLanguage": { "sLengthMenu": "_MENU_ 每页显示条数", "oPaginate": { "sPrevious": "上一页", "sNext": "下一页" } }, "aoColumns" : [{ 'mDataProp' : "clazzName", 'sDefaultContent':'' },{ "mDataProp" : "course.courseName", 'sDefaultContent':'' }, { "mDataProp" : "teacher.userName", 'sDefaultContent':'' } , { "mDataProp" : "laboratory.labName", 'sDefaultContent':'' } , { "mDataProp" : "", 'sDefaultContent':'', "fnRender" : function(o,val){ return "<a class='edit' href='javascript:;'>编辑</a>" } }, { "mDataProp" : "id", 'sDefaultContent':'', "fnRender" : function(o,val){ return "<a class='delete' href='javascript:;'>删除</a><input id='saveId' type='hidden' value=\""+val+"\">" } }], "bProcessing":false, "bServerSide":true, 'sAjaxDataProp': 'aaData', "sAjaxSource":"/labAdmin/getClazzList?labId="+labId, "fnServerData":function ( sSource,aoData, fnCallback) { $.ajax({ url : sSource,//这个就是请求地址对应sAjaxSource data : {"aoData":JSON.stringify(aoData)},//这个是把datatable的一些基本数据传给后台,比如起始位置,每页显示的行数 type : 'post', dataType : 'json', async : false, success :fnCallback, error : function(msg) { } }); } }); ``` 页面刷新后的情况: ![图片说明](https://img-ask.csdn.net/upload/201605/18/1463543123_798520.jpg) 页面刷新后请求返回情况:(共6条) ![图片说明](https://img-ask.csdn.net/upload/201605/18/1463543018_987557.jpg) 在即时模糊框里输入查询信息后的请求返回情况:(可以看到只有两条) ![图片说明](https://img-ask.csdn.net/upload/201605/18/1463543068_795680.jpg) 但是表格并没有刷新:![图片说明](https://img-ask.csdn.net/upload/201605/18/1463543112_950086.jpg)

jquery的表格插件 datatable使用ajax传递查询参数

jquery的表格插件 datatable使用ajax传递一写查询参数怎么写

关于Jquery DataTables 数据绑定问题

AJAX 的Success回调到后台返回的Json字符串。 如:[{"amount":2,"apply_id":1"},{"amount":3,"apply_id":2"}] 前台代码: success: function(data){ $('#table_id_example').DataTable({ //我应当怎么写,才能把data绑到Table中 }); },

为什么DataTable()。ajax.reload()无法使用ajax JSON响应自动重新加载表?

<div class="post-text" itemprop="text"> <p>I'm new in Jquery I want that once the user deletes an item(row) of table on click on "Supprimer" button I will delete it on data base the table reloads automatically without this deleted line. To do I used jQuery with DataTables:</p> <p>What is going on is once I click on "Ajouter" but it shows me this alert:</p> <blockquote> <p>DataTables warning: table id=tablebqup - Invalid JSON response. For more information about this error, please see <a href="http://datatables.net/tn/1" rel="nofollow noreferrer">http://datatables.net/tn/1</a></p> </blockquote> <p>I checked my database it was deleted but the table failed to load.</p> <p>I checked my Console and I found that :</p> <pre><code>Uncaught TypeError: Cannot set property 'data' of null at sa (datatables.min.js:48) at Sb (datatables.min.js:119) at s.&lt;anonymous&gt; (datatables.min.js:120) at s.iterator (datatables.min.js:111) at s.&lt;anonymous&gt; (datatables.min.js:120) at Object.reload (datatables.min.js:114) at Object.success (updtbq.js:69) at i (jquery-3.2.1.min.js:2) at Object.fireWith [as resolveWith] (jquery-3.2.1.min.js:2) at A (jquery-3.2.1.min.js:4) sa @ datatables.min.js:48 Sb @ datatables.min.js:119 (anonymous) @ datatables.min.js:120 iterator @ datatables.min.js:111 (anonymous) @ datatables.min.js:120 (anonymous) @ datatables.min.js:114 (anonymous) @ updtbq.js:69 i @ jquery-3.2.1.min.js:2 fireWith @ jquery-3.2.1.min.js:2 A @ jquery-3.2.1.min.js:4 (anonymous) @ jquery-3.2.1.min.js:4 XMLHttpRequest.send (async) send @ jquery-3.2.1.min.js:4 ajax @ jquery-3.2.1.min.js:4 r.(anonymous function) @ jquery-3.2.1.min.js:4 (anonymous) @ updtbq.js:58 dispatch @ jquery-3.2.1.min.js:3 q.handle @ jquery-3.2.1.min.js:3 </code></pre> <p>I searched for the error and I found that DataTables by default, expects the data loaded to be valid JSON I have done some modification on my code but I failed to fix the error. Please can some one help for that.</p> <p>Here is my php file:</p> <pre><code>&lt;?php require_once("C:/wamp/www/Mini_Prj/controllers/mainController.php"); $bnqs=MainController::getBanque(); echo' &lt;thead&gt; &lt;tr&gt; &lt;th style="display:none;"&gt;Id Banque&lt;/th&gt; &lt;th&gt;Nom de la banque&lt;/th&gt; &lt;th&gt;Abrev &lt;/th&gt; &lt;th&gt;Siège Sociale&lt;/th&gt; &lt;th&gt;Tel&lt;/th&gt; &lt;th&gt;Fax&lt;/th&gt; &lt;th&gt;Modifier&lt;/th&gt; &lt;th&gt;Supprimer&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;form method="post"&gt; '; $i=0; foreach ($bnqs as $bnq) { if($bnq['supr']!=1) { echo " &lt;tr&gt; &lt;td style='display:none;'&gt;".$bnq['idbc']."&lt;/td&gt; &lt;td contenteditable='true'&gt;".$bnq['nomb']."&lt;/td&gt; &lt;td contenteditable='true'&gt;".$bnq['abrvb']."&lt;/td&gt; &lt;td contenteditable='true'&gt;".$bnq['sigsocial']."&lt;/td&gt; &lt;td contenteditable='true'&gt;".$bnq['tel']."&lt;/td&gt; &lt;td contenteditable='true'&gt;".$bnq['fax']."&lt;/td&gt; &lt;td&gt; &lt;button id='modif$i' class='btn btn-info modif' name='button'&gt;Modifier&lt;/button&gt; &lt;/td&gt; &lt;td&gt; &lt;button id='supp$i' class='btn btn-info supp' name='button'&gt;Supprimer&lt;/button&gt; &lt;/td&gt; &lt;/tr&gt;"; $i++; } } echo' &lt;/form&gt; &lt;/tbody&gt; '; </code></pre> <p>here is my jS file :</p> <pre><code>var basUrl="http://localhost/Mini_Prj/"; $(document).ready(function(e){ $('#tablebqup').dataTable(); .... $(".supp").click(function () { $choix=confirm("voulez vous vraiment sauvegarder les modifications"); if ($choix) { var id=($(this).parent().parent().find('td:eq(0)').html());// the value in the 1st column. var nombc=($(this).parent().parent().find('td:eq(1)').html()); var abrv= ($(this).parent().parent().find('td:eq(2)').html()); var sigsoc=($(this).parent().parent().find('td:eq(3)').html()); var telf=($(this).parent().parent().find('td:eq(4)').html()); var fx=($(this).parent().parent().find('td:eq(5)').html()); console.log(id); $.post(basUrl+'views/component/updtbq.php', { action:'sup_bq', idbc:id, nomb:nombc, abrvb:abrv, sigsocial:sigsoc, tel:telf, fax:fx, }, function(data) { $("#tablebqup").DataTable().ajax.reload();//Here is my problem }); } }); ... </code></pre> <p>and here is the generated Html:</p> <pre><code>&lt;div class="updBanque"&gt; &lt;div&gt; &lt;h3&gt; Mise a jours des banques&lt;/h3&gt; &lt;div &gt; &lt;div class="table-responsive"&gt; &lt;table id="tablebqup" class="tableau table table-fixed table-bordered table-dark table-hover "&gt; &lt;?php include './component/tbbanqueupd.php'; ?&gt; &lt;/table&gt; &lt;form method="post"&gt; &lt;button type="button" class="btn btn-info" name="button" id="newbq" &gt;Nouvelle banque&lt;/button&gt; &lt;/form&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; </code></pre> <p>Here is the response:</p> <pre><code> &lt;thead&gt; &lt;tr&gt; &lt;th style="display:none;"&gt;Id Banque&lt;/th&gt; &lt;th&gt;Nom de la banque&lt;/th&gt; &lt;th&gt;Abrev &lt;/th&gt; &lt;th&gt;Siège Sociale&lt;/th&gt; &lt;th&gt;Tel&lt;/th&gt; &lt;th&gt;Fax&lt;/th&gt; &lt;th&gt;Modifier&lt;/th&gt; &lt;th&gt;Supprimer&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;form method="post"&gt; &lt;tr&gt; &lt;td style='display:none;'&gt;4&lt;/td&gt; &lt;td contenteditable='true'&gt;BANQUE DE DÉVELOPPEMENT LOCAL&lt;/td&gt; &lt;td contenteditable='true'&gt;BDL&lt;/td&gt; &lt;td contenteditable='true'&gt;5, rue Gaci Amar, Staoueli, Alger&lt;/td&gt; &lt;td contenteditable='true'&gt;021 39 34 83– 033 52 15&lt;/td&gt; &lt;td contenteditable='true'&gt;021 39 37 53&lt;/td&gt; &lt;td&gt; &lt;button id='modif0' class='btn btn-info modif' name='button'&gt;Modifier&lt;/button&gt; &lt;/td&gt; &lt;td&gt; &lt;button id='supp0' class='btn btn-info supp' name='button'&gt;Supprimer&lt;/button&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style='display:none;'&gt;2&lt;/td&gt; &lt;td contenteditable='true'&gt;BANQUE DE L’AGRICULTURE ET DU DÉVELOPPEMENT RURAL&lt;/td&gt; &lt;td contenteditable='true'&gt;BADR&lt;/td&gt; &lt;td contenteditable='true'&gt;17, Boulevard Colonel Amirouche, Alger&lt;/td&gt; &lt;td contenteditable='true'&gt;021 64 24 77– 63 38 78&lt;/td&gt; &lt;td contenteditable='true'&gt;021 63 51 46 / 64 34 44&lt;/td&gt; &lt;td&gt; &lt;button id='modif1' class='btn btn-info modif' name='button'&gt;Modifier&lt;/button&gt; &lt;/td&gt; &lt;td&gt; &lt;button id='supp1' class='btn btn-info supp' name='button'&gt;Supprimer&lt;/button&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style='display:none;'&gt;1&lt;/td&gt; &lt;td contenteditable='true'&gt;BANQUE EXTÉRIEURE D’ALGÉRIE&lt;/td&gt; &lt;td contenteditable='true'&gt;BEA&lt;/td&gt; &lt;td contenteditable='true'&gt;48, Rue des Frères Bouadou, Bir Mourad Raïs – Alger&lt;/td&gt; &lt;td contenteditable='true'&gt;023 83 54 79&lt;/td&gt; &lt;td contenteditable='true'&gt;021 56 30 50 / 056 51 56&lt;/td&gt; &lt;td&gt; &lt;button id='modif2' class='btn btn-info modif' name='button'&gt;Modifier&lt;/button&gt; &lt;/td&gt; &lt;td&gt; &lt;button id='supp2' class='btn btn-info supp' name='button'&gt;Supprimer&lt;/button&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style='display:none;'&gt;3&lt;/td&gt; &lt;td contenteditable='true'&gt;BANQUE NATIONALE D’ALGÉRIE&lt;/td&gt; &lt;td contenteditable='true'&gt;BNA&lt;/td&gt; &lt;td contenteditable='true'&gt;Siège Social : 8, Boulevard Ernesto Che Guevara, Alger&lt;/td&gt; &lt;td contenteditable='true'&gt; 021 43 99 98&lt;/td&gt; &lt;td contenteditable='true'&gt; 021 43 94 94&lt;/td&gt; &lt;td&gt; &lt;button id='modif3' class='btn btn-info modif' name='button'&gt;Modifier&lt;/button&gt; &lt;/td&gt; &lt;td&gt; &lt;button id='supp3' class='btn btn-info supp' name='button'&gt;Supprimer&lt;/button&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style='display:none;'&gt;11&lt;/td&gt; &lt;td contenteditable='true'&gt;CAISSE D’ÉPARGNE ET DE PRÉVOYANCE&lt;/td&gt; &lt;td contenteditable='true'&gt;CNEP BANQUE&lt;/td&gt; &lt;td contenteditable='true'&gt;Lot n°2 Garidi, Kouba – Alger&lt;/td&gt; &lt;td contenteditable='true'&gt;0556 64 36 99&lt;/td&gt; &lt;td contenteditable='true'&gt;021 91 64 57 et 58&lt;/td&gt; &lt;td&gt; &lt;button id='modif4' class='btn btn-info modif' name='button'&gt;Modifier&lt;/button&gt; &lt;/td&gt; &lt;td&gt; &lt;button id='supp4' class='btn btn-info supp' name='button'&gt;Supprimer&lt;/button&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style='display:none;'&gt;5&lt;/td&gt; &lt;td contenteditable='true'&gt;CRÉDIT POPULAIRE D’ALGÉRIE&lt;/td&gt; &lt;td contenteditable='true'&gt;CPA&lt;/td&gt; &lt;td contenteditable='true'&gt;2, Boulevard Colonel Amirouche, Alger&lt;/td&gt; &lt;td contenteditable='true'&gt;021 63 57 12&lt;/td&gt; &lt;td contenteditable='true'&gt;021 63 56 98 / 63 58 83&lt;/td&gt; &lt;td&gt; &lt;button id='modif5' class='btn btn-info modif' name='button'&gt;Modifier&lt;/button&gt; &lt;/td&gt; &lt;td&gt; &lt;button id='supp5' class='btn btn-info supp' name='button'&gt;Supprimer&lt;/button&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/form&gt; &lt;/tbody&gt; </code></pre> </div>

jquery datatables插件 表格数据初始化时,数据加载两次

/** 表格的数据渲染 */ function drawTable(aa001, aa002, aa003) { dataTable = $("#dataTable").DataTable({ "searching": false, "ordering": false, "destroy": true, "lengthMenu": [ 10, 20, 25, 30 ], "lengthChange": false, "paging": true, "ajax": { "url":"**", "data": {"aa001": aa001, "aa002": aa002, "aa003": aa003} }, "language": { "emptyTable": "无相关数据!", "info": "符合查询条件的数据共 _TOTAL_ 条,当前第 _START_ 至 _END_ 条数据", "infoEmpty": "当前显示0到0条,共0条记录", "lengthMenu": "显示 _MENU_ 条", "loadingRecords": "加载中...", "processing": "加载中...", "zeroRecords": "未查询到相关数据!", "paginate": { "first": "首页", "last": "尾页", "next": "下一页", "previous": "上一页" } }, "columns": [ {"class" : 'details-control', "orderable": false, "data": null, "defaultContent": '' }, { "data": "ab301"}, { "data": "ab303"}, { "data": "ac201"}, { "data": "bm001"}, { "data": "bm004"}, { "data": "afk02"}, { "data": "dc236"}, { "data": "area"} ] }); }

Jquery packagingdatatabledata is not defined

具体如下: $('#jfsearch').on( 'click', function () { var jfondate = $('#jfondate').is(':checked'); var jfzhtype = $('#jfzhtype').val(); $.ajax({ url: ctx+"jffindByTypeAndDate", data:{flag:jfondate,tenantType:jfzhtype}, dataType:'json', success:function(msgObj){ $('#charging_table').dataTable().fnClearTable(); $('#charging_table').dataTable().fnAddData(packagingdatatabledata(msgObj),true); }, error:function(){ alert('error'); } }) })

Jquery DataTable服务端获取draw,start和length参数的值为null

前端代码: <table id="dtable" class="display"> <thead> <tr> <th>姓名</th> <th>编号</th> </tr> </thead> </table> <scripts type="text/javascript"> $(document).ready(function(){ $("#dtable").dataTable({ "serverSide":true, "ajax":{ "url":"/Approval/GetApprovalFormList", type":post }, "columns":[ {"data":"Name"}, {"data":"ID"} ] }) }) </scripts> 服务端代码: public JsonResult GetApprovalFormList() { string start=this.Request["start"]; string length=this.Request["end"]; }

无法在DataTable.js jquery插件中的服务器端处理中加载数据

<div class="post-text" itemprop="text"> <p>I just started learning DataTable.js and I've got one doubt regarding server-side processing in DataTable.js, that is, how can I load the table in server-side processing?</p> <p>I'm posting my code here so it would be easy to understand</p> <p><strong>table.html</strong></p> <pre class="lang-html prettyprint-override"><code>&lt;table id="empTable"&gt; &lt;thead&gt; &lt;th&gt;First Name&lt;/th&gt; &lt;th&gt;Last Name&lt;/th&gt; &lt;th&gt;Email&lt;/th&gt; &lt;th&gt;Phone Number&lt;/th&gt; &lt;/thead&gt; &lt;/table&gt; </code></pre> <p><strong>script.js</strong></p> <pre class="lang-js prettyprint-override"><code>&lt;script type="text/javascript"&gt; var empTable; $(document).ready(function(){ empTable = $("#empTable").dataTable({ 'processing':true, 'serverside':true, 'ajax': 'fetchRecord.php' }); }); &lt;/script&gt; </code></pre> <p><strong>fetchRecord.php</strong></p> <pre class="lang-php prettyprint-override"><code>&lt;?php $conn = new mysqli('localhost','root','','example'); if($conn-&gt;connect_error) die("Could not connect".$conn-&gt;connect_error); $fetchQuery = "SELECT firstname, lastname, email, phonenumber FROM employee"; $output = array('data' =&gt; array()); $result = $conn-&gt;query($fetch); if($result-&gt;num_rows &gt; 0){ while($row = $result-&gt;fetch_assco()){ $output['data'][] = $row; } } $conn-&gt;close(); echo json_encode($output); ?&gt; </code></pre> <p>Please tell me what's wrong with this code and how can I fetch data from php page and load it in DataTable?</p> <p>Apologies for any mistakes.</p> <p>Thank you in advance</p> </div>

关于Jquery的DataTable样式的问题

![图片说明](https://img-ask.csdn.net/upload/201706/02/1496374158_781648.jpg) 请问我可否把表格上下的两根黑线给去掉或者修改掉? 搜索框能否替换掉样式? 还有显示件数的下拉框可否替换样式? 具体代码如何实现?

jquery dataTable解析后台传回的json报错

JSP: ``` <table class="table table-striped table-hover table-bordered" id="sample_editable_1"> <thead> <tr> <th>实验室名称</th> <th>所属学院</th> <th>分类</th> <th>创建日期</th> <th>创建人</th> <th>编辑</th> <th>删除</th> </tr> </thead> <tbody> </tbody> ``` 前台js: ``` var oTable = $('#sample_editable_1').dataTable({ "aLengthMenu": [ [5, 15, 20, -1], [5, 15, 20, "All"] // change per page values here ], // set the initial value "iDisplayLength": 15, "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", "sPaginationType": "bootstrap", "oLanguage": { "sLengthMenu": "_MENU_ 每页显示条数", "oPaginate": { "sPrevious": "上一页", "sNext": "下一页" } }, "aoColumns" : [{ "rows" : "labName" },{ "rows" : "academy" }, { "rows" : "category" } , { "rows" : "createTime" } , { "rows" : "createrName" } , { "rows" : "" }, { "rows" : "" }], "bProcessing":false, "bServerSide":true, "sAjaxSource":"/getAllLabInfo", "fnServerData":function ( sSource,aoData, fnCallback) { $.ajax({ url : sSource,//这个就是请求地址对应sAjaxSource data : {"aoData":JSON.stringify(aoData)},//这个是把datatable的一些基本数据传给后台,比如起始位置,每页显示的行数 type : 'post', dataType : 'json', async : false, success : function(result) { alert(result.rows[0].labName); fnCallback(result.rows);//把返回的数据传给这个方法就可以了,datatable会自动绑定数据的 }, error : function(msg) { } }); alert(aoData); } }); ``` 后台json: {"total":3,"rows":[{"createTime":"2016-05-12 17:01:30.000000","labName":"物理实验室","id":1,"category":"物理类","academy":"理学院","createrName":"sysadmin"},{"createTime":"2016-05-12 17:01:37.000000","labName":"化学实验室","id":2,"category":"化学类","academy":"理学院","createrName":"sysadmin"},{"createTime":"2016-05-12 17:01:40.000000","labName":"金工实习","id":3,"category":"车床打磨","academy":"主校区","createrName":"sysadmin"}]} 报错: ![图片说明](https://img-ask.csdn.net/upload/201605/12/1463066615_880510.jpg) ![图片说明](https://img-ask.csdn.net/upload/201605/12/1463066664_584182.jpg) 求大神解惑,整了一下午了,再不能只能改用easyui了

datatable动态显示表头怎么写js 初学急需帮助!!

$('#basicDataTable').dataTable( { "fnServerData": function ( sSource, aoColumns, fnCallback, oSettings ) { oSettings.jqXHR = $.ajax( { "dataType": 'json', "type": "POST", "url": "${ctx}/sumDataDetails/json", "data": aoColumns, "success": function(data){ if(data=="ture"){ //返回的数据用data.d获取内容 var tHead=$("#basicDataTable table"); var nFoot=$(".table_foot"); tHead.getElementsByTagName('th')[0].innerHTML=$('#statedDate').val()+$('#gameStr').val()+$('#adStr').val()+$('#aaStr').val()+$('#childChannel').val()+$('#userNum').val()+$('#newUser').val()+$('#sdkRegisterUser').val()+$('#sdkLoginUser').val()+$('#createRoleUser').val()+$('createRoleNum').val()+$('#newCRoleUser').val()+$('#newCRolePer').val()+$('#activityUser').text()+$('#activityPer').val()+$('#allNewUserCount').val()+$('#rechangeUser').val()+$('#rechangeCount').val()+$('#rechangeAmount').val()+$('#rechangeArppu').val()+$('#rechangePermeability').val(); nFoot.getElementsByTagName('th')[0].innerHTML = $('#daterangepicker_start').val()+"总计"+$('#childChannel').val()+$('#userNum').val()+$('#newUser').val()+$('#sdkRegisterUser').val()+$('#sdkLoginUser').val()+$('#createRoleUser').val()+$('createRoleNum').val()+$('#newCRoleUser').val()+$('#newCRolePer').val()+$('#activityUser').text()+$('#activityPer').val()+$('#allNewUserCount').val()+$('#rechangeUser').val()+$('#rechangeCount').val()+$('#rechangeAmount').val()+$('#rechangeArppu').val()+$('#rechangePermeability').val(); } else{ alert(data);} } }); return false; } }); 表头显示效果: ![图片说明](https://img-ask.csdn.net/upload/201505/22/1432285571_355124.jpg)

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

将一个接口响应时间从2s优化到 200ms以内的一个案例

一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位 定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。 2.1.1 工具监控 就工具而言,推荐使用 arthas ,用到的是 trace 命令 具体安装步骤很简单,大家自行研究。 我的使用步骤是...

学历低,无法胜任工作,大佬告诉你应该怎么做

微信上收到一位读者小涛的留言,大致的意思是自己只有高中学历,经过培训后找到了一份工作,但很难胜任,考虑要不要辞职找一份他能力可以胜任的实习工作。下面是他留言的一部分内容: 二哥,我是 2016 年高中毕业的,考上了大学但没去成,主要是因为当时家里经济条件不太允许。 打工了三年后想学一门技术,就去培训了。培训的学校比较垃圾,现在非常后悔没去正规一点的机构培训。 去年 11 月份来北京找到了一份工...

JVM内存结构和Java内存模型别再傻傻分不清了

JVM内存结构和Java内存模型都是面试的热点问题,名字看感觉都差不多,网上有些博客也都把这两个概念混着用,实际上他们之间差别还是挺大的。 通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关,本文针对这两个总是被混用的概念展开讲解。 JVM内存结构 JVM构成 说到JVM内存结构,就不会只是说内存结构的5个分区,而是会延展到整个JVM相关的问题,所以先了解下

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Google 与微软的浏览器之争

浏览器再现“神仙打架”。整理 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从 IE 到 Chrome,再从 Chrome 到 Edge,微软与...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

立即提问
相关内容推荐