- PR -

ブラウザを2つ起動すると、GridViewの更新が凄く重い

1
投稿者投稿内容
けると
会議室デビュー日: 2008/09/04
投稿数: 4
投稿日時: 2008-09-04 23:31
お世話になります。
現在、Ajax Extensionで開発をしておりますが、
掲題の件について質問があります。

画面にUpdatePanelを2つ配置し、それぞれにGridViewを追加しました。
それらのUpdatePanelはタイマーを使って一定間隔で更新します。
それぞれのGridViewにはObjectDataSourceを追加しました。

そして以下のコードを作成し、
それぞれのObjectDataSourceのTypeNameにClass1として設定しました。
さらにSelectMethodはそれぞれSelectData1とSelectData2を設定しました。
これでデバッグ実行してブラウザを表示させます。
更にブラウザを起動し、同じアプリを表示させると。。。
(http://localhost:2683/アプリ名/)
2つのブラウザ上にあるGridViewの更新が物凄く重くなります。
そしてさらに3つ目のブラウザを起動して同じアプリを表示させると。。。
途端に全てのブラウザでGridViewの更新が軽くなります。

ブラウザはIE7を使いました。
環境はVisual Web Developer 2005 Express Edisionです。


複数のブラウザを起動しても、更新速度に影響を出したくないのですが
良い手は無いものでしょうか。


public class Class1
{
public static int c1 = 0;
public static int c2 = 0;

public Class1()
{


}

public DataSet selectData1()
{
DataTable dt = new DataTable();

DataSet ds = new DataSet();

//列のタイトル作成
dt.Columns.Add("111");
dt.Columns.Add("222");
dt.Columns.Add("333");
dt.Columns.Add("444");

//1行追加(タイマーで書き分ける)
if ((c1 % 2) == 0)
{
dt.Rows.Add("aaa", "aaa", "aaa", "aaa");
c1++;
}
else
{
dt.Rows.Add("bbb", "bbb", "bbb", "bbb");
c1++;
}
ds.Tables.Add(dt);

return ds;
}

public DataSet selectData2()
{
DataTable dt = new DataTable();

DataSet ds = new DataSet();

//列のタイトル作成
dt.Columns.Add("abc");
dt.Columns.Add("def");
dt.Columns.Add("ghi");
dt.Columns.Add("jkl");

//1行追加(タイマーで書き分ける)
if ((c2 % 2) == 0)
{
dt.Rows.Add("aaa", "aaa", "aaa", "aaa");
c2++;
}
else
{
dt.Rows.Add("bbb", "bbb", "bbb", "bbb");
c2++;
}

ds.Tables.Add(dt);

return ds;
}
}

以上、宜しくお願い致します。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-09-04 23:45
引用:

けるとさんの書き込み (2008-09-04 23:31) より:
これでデバッグ実行してブラウザを表示させます。
更にブラウザを起動し、同じアプリを表示させると。。。
(http://localhost:2683/アプリ名/)
2つのブラウザ上にあるGridViewの更新が物凄く重くなります。


Ajax は知らないので、あまり直接の回答ではないかもしれませんが、昔から、Web サーバー上で、ブラウザーを動かすとなにかが競合して遅いことは良くあります。(私も理由は良くしりませんが。)
まずは、Web サーバー以外の PC でブラウザーを動かしてみて、それでも遅くなるかを調べられてはどうでしょうか。
1

スキルアップ/キャリアアップ(JOB@IT)