每当数据库发生问题时更新 yii2 网格

Updating yii2 grid whenever something happens to database

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

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

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 使用率

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