472,954 Members | 2,034 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,954 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 5040
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: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
2
by: DJRhino | last post by:
Was curious if anyone else was having this same issue or not.... I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...
0
by: Aliciasmith | last post by:
In an age dominated by smartphones, having a mobile app for your business is no longer an option; it's a necessity. Whether you're a startup or an established enterprise, finding the right mobile app...
2
by: giovanniandrean | last post by:
The energy model is structured as follows and uses excel sheets to give input data: 1-Utility.py contains all the functions needed to calculate the variables and other minor things (mentions...
4
NeoPa
by: NeoPa | last post by:
Hello everyone. I find myself stuck trying to find the VBA way to get Access to create a PDF of the currently-selected (and open) object (Form or Report). I know it can be done by selecting :...
3
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be using a very simple database which has Form (clsForm) & Report (clsReport) classes that simply handle making the calling Form invisible until the Form, or all...
3
by: nia12 | last post by:
Hi there, I am very new to Access so apologies if any of this is obvious/not clear. I am creating a data collection tool for health care employees to complete. It consists of a number of...
0
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be focusing on the Report (clsReport) class. This simply handles making the calling Form invisible until all of the Reports opened by it have been closed, when it...
0
isladogs
by: isladogs | last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, Mike...

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.