1
2つのアプリケーションを作成して割り当てを受けました。最適化されていないものと最適化されていないものがあり、DBからのデータを表示するのにjqGridを使用しています。jqGrid - ローカル操作の速度をどのように追跡することができますか
私は正常に両方を作成しましたが、私はローカルオペレーション(ページング、検索、並べ替え)が完了したときの速度を追跡したいと思います。
私は、操作をトリガする各ボタンのイベントを設定しようとしましたが、トリガしていないようです... jqGridに組み込まれているものがあれば、私はこれを解決するのに役立ちます。
マイjqGridコードはこのように書きます:
$(function() {
var colModelSettings = [
{name:'id', label:'id',key: true, hidden: true, width:10,sorttype:'number',editable: true},
{name:'judet',label:'Judet',width:70, align: 'center',editable:true},
{name:'localitate',label:'Localitate',width:80,editable:true,searchoptions: {sopt: ['eq','bw','ew','cn']},align: 'center'},
{name:'tipStrada',label:'tipStrada',editable:true,searchoptions: {sopt: ['eq','bw','ew','cn']},width:100,align: 'center' },
{name:'denumire',label:'denumire',editable:true,width:100,searchoptions: {sopt: ['eq','bw','ew','cn']},align: 'center'},
{name:'cod',label:'cod',width:90,editable:true,align: 'center'}
];
var beforeEvent = 0;
$("#gridAdrese").jqGrid({
pager: $("#pagerGrid"),
url: "/UnoptimizedProject/rest/fetchData",
datatype: "json",
mtype: "POST",
loadonce: true,
forceClientSorting:true,
height: window.innerHeight-250,
sortname: 'id',
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
serializeGridData: function (postData) {
if (postData.searchField === undefined) postData.searchField = null;
if (postData.searchString === undefined) postData.searchString = null;
if (postData.searchOper === undefined) postData.searchOper = null;
return JSON.stringify(postData);
},
rowNum: 5000,
viewrecords: true,
loadComplete: function(){
if(beforeEvent !== undefined){
var afterEvent = new Date().getTime();
console.log(afterEvent- beforeEvent);
beforeEvent = 0;
}
},
sortorder: 'asc',
caption:'Coduri Postale Neoptimizat' ,
autowidth: true,
colModel: colModelSettings,
});
$("#gridAdrese").jqGrid('navGrid', "#pagerGrid", {edit:false, add:false, del:false, save:false, cancel:false, search:true, searchtext: 'Search', refresh: false});
$("#jqgh_gridAdrese_judet, #jqgh_gridAdrese_localitate, #jqgh_gridAdrese_tipStrada, #jqgh_gridAdrese_denumire, #jqgh_gridAdrese_cod ").on("click",function(){
beforeEvent = new Date().getTime();
console.log("Sorting");
})
$("#fbox_gridAdrese_search").on("click",function(){
beforeEvent = new Date().getTime();
console.log("searching");
});
$("#next_pagerGrid , #last_pagerGrid, #prev_pagerGrid, #first_pagerGrid").on("click",function(){
beforeEvent = new Date().getTime();
console.log("paging");
})
});
「2つのアプリケーション、最適化されたものと最適化されていないもの」について書きます。 「最適化」とは何ですか? 'url'からの応答時間だけですか?あなたは 'loadonce:true、forceClientSorting:true'を使います。つまり、並べ替え、ページング、および検索は**ローカル**でjqGridによって行われます。したがって、ソート、ページング、および検索の時間は、最適化された最適化されていないバックエンドと同じになります。 – Oleg
最適化された最適化されていない最適化されていない相違点は、主にバックエンドとそこで使用されるテクノロジにあります。最適化されたアプリケーションは、バックエンドで検索、並べ替え、ページ分割などのすべての操作を行い、最適化されていないアプリはローカルで行います。 – IvanSt
あなたは 'id' coulumnを削除することができます。これは全く必要ではありません。 'label'の値が' name'の値と同じであれば 'label'をすべて削除することができます(例えば' name: 'tipStrada'、label: 'tipStrada''、 'name:' denumire '、label: 'denumire''、...) – Oleg