473,387 Members | 1,785 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

table-layout "fixed" gets buffered in IE?

I have some servlet-generated tabular data that I need to present, so I'm
using an HTML Table. In some cases, it can be quite large. I'm flushing
the servlet output every N lines to push the data to the browser as it
generates, and I've used "table-layout: fixed" for the table's CSS class.

It works pretty well in Netscape (7.1 and higher) - the table is drawn
pretty much as the rows are received by the browser. However, Internet
Explorer 6.0 seems to draw the table at whim rather than as the rows are
received. Since there may be significant chunks of time between whims (or
worse, before the first draw), it looks like my app isn't responding even
though it's really IE that's the holdup.

My understanding of fixed table-layout is that it permits the browser to
draw the rows as they're received, where auto table-layout requires all rows
to have been received to allow column calculations. So I'm expecting to see
the Netscape-style behavior I described above. I've defined a width for the
table and for each column, so I'm pretty sure fixed layout isn't being
short-circuited down to auto. I've also seen that in a large table, I
*will* get chunks at a time, which implies IE isn't doing "auto" behavior.

So my assumption is that the IE code is doing a fixed layout but is
buffering for some reason, but that's just a guess.

I've distilled the situation down so that I can demonstrate it with a small
(2-row) table:

http://home.comcast.net/~rob.freundl...ixedTable.html

I've injected (for debugging only - not for the final app) a javascript
alert() between the two rows to put a pause into the rendering so that I can
see when things are being drawn. In Netscape, when the alert pops up, row 1
has been drawn and is visible to the user. In IE, when the alert pops up,
neither row has been drawn.

Can anyone offer advice? I'll take CSS hacks, IE-specific JavaScript that
will force the draw, or even sacrificial rituals (yes, I'm willing to dance
widdershins around Redmond in the light of the full moon if that's what it
takes!), as long as I can fix the problem for IE6.0.

Rob Freundlich
"Males ae biologically driven to go out and hunt giraffes." - Newt Gingrich
"Some folks you don't have to satirize, you just quote 'em." - Tom Paxton
Jul 24 '05 #1
4 5069
Rob Freundlich wrote:
(yes, I'm willing to dance widdershins around Redmond in the light of the full moon if that's what it
takes!)

I don't know anything about your problem, unfortunately.....

But dancing widdershins around Redmond in the light of the full moon may
give ol' Bill a laugh or two...

--
Grant Smith
A+, Net+, MCP x 2

eNVENT Technologies - www.envent-tech.com
Jul 24 '05 #2
Gazing into my crystal ball I observed "Rob Freundlich"
<ro*@freundlichs.com> writing in news:Zv********************@comcast.com:
I have some servlet-generated tabular data that I need to present, so
I'm using an HTML Table. In some cases, it can be quite large. I'm
flushing the servlet output every N lines to push the data to the
browser as it generates, and I've used "table-layout: fixed" for the
table's CSS class.

It works pretty well in Netscape (7.1 and higher) - the table is drawn
pretty much as the rows are received by the browser. However, Internet
Explorer 6.0 seems to draw the table at whim rather than as the rows
are received. Since there may be significant chunks of time between
whims (or worse, before the first draw), it looks like my app isn't
responding even though it's really IE that's the holdup.
Can you break up the data a bit? Maybe page the records. Usually, when I
have a lot of data, I page at 50 records.

My understanding of fixed table-layout is that it permits the browser
to draw the rows as they're received, where auto table-layout requires
all rows to have been received to allow column calculations. So I'm
expecting to see the Netscape-style behavior I described above. I've
defined a width for the table and for each column, so I'm pretty sure
fixed layout isn't being short-circuited down to auto. I've also seen
that in a large table, I *will* get chunks at a time, which implies IE
isn't doing "auto" behavior.
That's IE for ya. Perhaps MS just thought no one was ever going to have a
really big table, so they aren't honoring the spec.

So my assumption is that the IE code is doing a fixed layout but is
buffering for some reason, but that's just a guess.

I've distilled the situation down so that I can demonstrate it with a
small (2-row) table:

http://home.comcast.net/~rob.freundl...ixedTable.html
No DOCType declaration. You might want to use that and see if IE responds
any better (I doubt it).

I've injected (for debugging only - not for the final app) a javascript
alert() between the two rows to put a pause into the rendering so that
I can see when things are being drawn. In Netscape, when the alert
pops up, row 1 has been drawn and is visible to the user. In IE, when
the alert pops up, neither row has been drawn.

Can anyone offer advice? I'll take CSS hacks, IE-specific JavaScript
that will force the draw, or even sacrificial rituals (yes, I'm willing
to dance widdershins around Redmond in the light of the full moon if
that's what it takes!), as long as I can fix the problem for IE6.0.


The only thing I can think of is to break up the data. If you have 4
columns, 50 rows; 10 columns, 25 rows, etc. Additionally, consider the
content in the table. Are you going to have images, several lines of text
in a cell? It would probably be easier for the user as well if the records
were broken up.

If most of your visitors are using IE, then you may have to live with it.

--
Adrienne Boswell
http://www.cavalcade-of-coding.info
Please respond to the group so others can share
Jul 24 '05 #3
Gazing into my crystal ball I observed "Rob Freundlich"
<ro*@freundlichs.com> writing in news:Zv********************@comcast.com:
I have some servlet-generated tabular data that I need to present, so
I'm using an HTML Table. In some cases, it can be quite large. I'm
flushing the servlet output every N lines to push the data to the
browser as it generates, and I've used "table-layout: fixed" for the
table's CSS class.

It works pretty well in Netscape (7.1 and higher) - the table is drawn
pretty much as the rows are received by the browser. However, Internet
Explorer 6.0 seems to draw the table at whim rather than as the rows
are received. Since there may be significant chunks of time between
whims (or worse, before the first draw), it looks like my app isn't
responding even though it's really IE that's the holdup.
Can you break up the data a bit? Maybe page the records. Usually, when I
have a lot of data, I page at 50 records.

My understanding of fixed table-layout is that it permits the browser
to draw the rows as they're received, where auto table-layout requires
all rows to have been received to allow column calculations. So I'm
expecting to see the Netscape-style behavior I described above. I've
defined a width for the table and for each column, so I'm pretty sure
fixed layout isn't being short-circuited down to auto. I've also seen
that in a large table, I *will* get chunks at a time, which implies IE
isn't doing "auto" behavior.
That's IE for ya. Perhaps MS just thought no one was ever going to have a
really big table, so they aren't honoring the spec.

So my assumption is that the IE code is doing a fixed layout but is
buffering for some reason, but that's just a guess.

I've distilled the situation down so that I can demonstrate it with a
small (2-row) table:

http://home.comcast.net/~rob.freundl...ixedTable.html
No DOCType declaration. You might want to use that and see if IE responds
any better (I doubt it).

I've injected (for debugging only - not for the final app) a javascript
alert() between the two rows to put a pause into the rendering so that
I can see when things are being drawn. In Netscape, when the alert
pops up, row 1 has been drawn and is visible to the user. In IE, when
the alert pops up, neither row has been drawn.

Can anyone offer advice? I'll take CSS hacks, IE-specific JavaScript
that will force the draw, or even sacrificial rituals (yes, I'm willing
to dance widdershins around Redmond in the light of the full moon if
that's what it takes!), as long as I can fix the problem for IE6.0.


The only thing I can think of is to break up the data. If you have 4
columns, 50 rows; 10 columns, 25 rows, etc. Additionally, consider the
content in the table. Are you going to have images, several lines of text
in a cell? It would probably be easier for the user as well if the records
were broken up.

If most of your visitors are using IE, then you may have to live with it.

--
Adrienne Boswell
http://www.cavalcade-of-coding.info
Please respond to the group so others can share
Jul 24 '05 #4
rob
Adrienne wrote:
Gazing into my crystal ball I observed "Rob Freundlich"
<ro*@freundlichs.com> writing in
news:Zv********************@comcast.com:
I have some servlet-generated tabular data that I need to present, so
I'm using an HTML Table. In some cases, it can be quite large. I'm
flushing the servlet output every N lines to push the data to the
browser as it generates, and I've used "table-layout: fixed" for the
table's CSS class.

It works pretty well in Netscape (7.1 and higher) - the table is
drawn pretty much as the rows are received by the browser. However,
Internet Explorer 6.0 seems to draw the table at whim rather than as
the rows are received. Since there may be significant chunks of
time between whims (or worse, before the first draw), it looks like
my app isn't responding even though it's really IE that's the holdup.


Can you break up the data a bit? Maybe page the records. Usually,
when I have a lot of data, I page at 50 records.


I might be able to break it up in some cases, but not in others. The
app is
a report generator which allows nesting of reports. The problem is
worse
than I described above (and than in the example I posted) because in
the
case of a nested report, my table structure looks like this:

Table
Row 1 - data about first record in main report
Row 2 - nested report about first record in main report,
containing:
Table
Row 1 - data about first record in nested report
Row 2 - data about second record in nested repor
...
Row 3 - data about second record in main report
Row 4 - nested report
...

The case that made me aware of the problem was when "main report" had
only 5
records, but the first one's nested report had many many records. I
think
the nested table confused IE even more than a flat table - it didn'
render
*any* of the rows in the nested table in Row 2 (above) until all had
been
received. So although breaking up the main table might help, I don't
think
that breaking up the nested table would help.

I can try it though, and see what happens. It'll require better
handling of
column widths than I have currently, since I want it to look like a
single
table to the user (i.e. the columns must match across table breaks),
but I
need that anyway.

Carried to the extreme, your suggestion would, of course, lead to a
single
row per table, in which case I might scrap tables and just use SPANs
inside
of DIVS, with widths (or CSS classes) assigned to each. I know that
will
work, but rejected it because of the overhead of giving the
widths/classes
for every element. I like your suggestion, which works out to a sort
of
middle solution - I have to emit width control periodically (i.e. for
every
table), but not nearly as frequently as in the non-table solution.

I'll give it a shot. Thanks!

--
Rob Freundlich
"Males ae biologically driven to go out and hunt giraffes." - Newt
Gingrich
"Some folks you don't have to satirize, you just quote 'em." - Tom
Paxton

Jul 24 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

179
by: SoloCDM | last post by:
How do I keep my entire web page at a fixed width? ********************************************************************* Signed, SoloCDM
0
by: VRandy | last post by:
Example: http://pages.prodigy.net/randyv/centerprb.htm The desired effect is a fixed width left margin with a fixed width div centered in the right side. If the browser is resized to become very...
17
by: Matt Kruse | last post by:
I'm looking for the best JS/CSS solution to add functionality to tables. The only browser which needs to be supported is IE5.5+, but no activeX can be used. to be able to do: - Fixed header row...
2
by: Mike | last post by:
My page populates a table with a list of names and other information from a JavaScript object. I receive changes (adds, change & delete) to that list, convert it into a JavaScript object. I do...
3
by: Uttam | last post by:
Hello, Using ADO I have created a table and have also created fields. To create fields, I have used the following: ..Columns.Append "Field_Name", adWChar, 6 I load records into this...
2
by: Scott | last post by:
I have a macro set up to delete a table and then it imports an up-to-date copy of the table. Every once in a while the table gets deleted but the new one isn't imported, I assume the user is...
8
by: ms news group | last post by:
What happens if exception is thown within a fixed block? Will the pinned memory buffer get unpinned? and if the pinning pointer points to a managed memery buffer allocated within the throwing...
139
by: ravi | last post by:
Hi can anybody tell me that which ds will be best suited to implement a hash table in C/C++ thanx. in advanced
1
by: anmcafresher | last post by:
Hi Guys Any Help highly appreciated.. Please let me know if there is a way to print the table footer at a fixed absolute position. My HTML Table footer gets printed at the same space where data...
4
by: crazychrisy54 | last post by:
Hi there, I am new to JavaScript and wonder if it could be used to solve my problem, any help would be much appreciated! I have a html web page which contains a table on the left hand side and...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.