每当数据库出现问题时更新yii2网格

时间:2016-10-28 03:01:30

标签: javascript jquery yii2 yii2-advanced-app

我有一个kartik网格,目前正在使用设置超时间隔的jquery进行更新。这可行,但问题是它生成了许多http ajax请求,当我检查任务管理器时,谷歌浏览器倾向于使用25%的cpu ..

这就是我目前正在做的事情。

echo DynaGrid::widget([
'columns' => $columns,
'showPersonalize' => true,
//'allowThemeSetting'=> false,
'options' => ['id' => 'trackyard'],
'gridOptions' => [
    'options' => ['id' => 'assignsolic'],
    'dataProvider' => $dataProvider,
    //'filterModel' => $searchModel,
    'showPageSummary' => false,

    'pager' => [
        'firstPageLabel' => 'First',
        'lastPageLabel' => 'Last',
        'maxButtonCount' => 10,
    ],
    'toolbar' => [
        ['content' => '{dynagrid}'],
        '{export}',
        '{toggleData}'
    ],
    'pjax' => true,
    'pjaxSettings' => [
        'options' => [
            'id' => 'wod',
           // 'enablePushState' => false,

        ],
        'loadingCssClass'=>false,
    ],

]
]);

这是更新网格的jquery代码

function reloadgrid() {
  $.pjax.reload({container:"#trackyard-pjax"});
   }
 window.setTimeout(
  reloadgrid(),1000
  )

上面的代码可以正常工作,但是当服务器上发生某些变化以降低cp使用率时,有更好的方法可以随时调用上面的重载网格函数

1 个答案:

答案 0 :(得分:1)

当服务器端发生更改时,您需要使用websocket来实时更新客户端。如果您使用的是asp.net,则可以使用signalR,否则您可以使用socket.io