speed issues traversing the DOM.

  • Thread starter The Natural Philosopher
  • Start date
S

SAM

Le 12/1/08 2:47 AM, David Mark a écrit :
Now you are being sensible.

Be careful, Laurent is very shy when he knows many things in JS.
That would damage it does not participate in contributions.
 
T

The Natural Philosopher

SAM said:
Le 11/30/08 1:05 AM, The Natural Philosopher a écrit :

with 2000 items ... it's not more a menu !
That's a dictionary !
Actually its a complete stock list from a small manufacturing company.


There are about 1000 items in it in about 50 categories organised as a
hierarchy. I need to be able to rapidly navigate this in order to create
assemblies of parts, and also to populate sales and purchase orders.

Rather than 'remember' every part number, or have to do a 'search' on
it., downloading the entire warehouse and its indices, was the fastest
way to do this. Each entry is very short tyext wise. Just teh name and
number of every part or index in teh databse.


Bon! me voilà bien avancé !
(flyout page ?)
Visual terms. A show/hide div containing a list of items. So category
'gearboxes' if you mouseover it pops up a square box containing lots of
different gearboxes as it were. And possibly another category 'gearbox
bearings' and so on. There is a need to identify all these sub boxes and
switch them on and off rapidly.


???? you'll have to limit this amount !

Thats limited only by the customer and how much stock he has. I can't go
to him and say 'er sorry, you cant stock more than 1000 items'

I MIGHT say, if you at stocking 10,000 you will need a very fast PC'

No, that's not possible.
(except if by 'spawn' you mean 'show' something already existing,
displayed)
Yes. Bien!
No, why "so each one is a *DIV*" ?
that could be an <ul> or a <dl>
or do you mean a 'block' (a box, a container, also called layer) ?
Well its a div, rather than the above, for positioning/style purposes.
Always style in relative (or nothing).
The absolute positioning is only when all other solutions fall down.
Anyway, any tag can be formated as you want.

Absolutely the reverse is true here. *Never* relative. I want pixel
accuracy on everything so that the screens look identical no matter what
browser or what size the screen is. I am not trying to be a nice HTML
site, I am trying to be an application that uses HTML and script as a
user interface, thats all.

The flyed frame gives a value to a global variable.
Ne next flyer will close the opened one known by this variable then set
it with itself one.

That's how I did it finally, yes.

You are completely in error about the method to adopt for your project.
There has not to browse the DOM to re-hide the details, they are
naturally hidden.

Not if hey have just been switched on they aren't.
It may be enough to drag the sub div details of the article in another
unique div specialized to serve only viewing the wanted details as
showed in my bad made previous examples.

Why won't you use Json ?

Ive tried on occasion a few other peoples libraries and found them
extremely fragile, limited n vross browser support, and incable of dong
exactly waht I want.

In fact this whole *project* goes back about 17 years to when somneone
aid 'there must be some stock control manufacturing software out there
that does all this'

But there wasn't.

We could buy bits of it from various places, but none linked together.

I spent a year and $120,000 on the best I could fine.

Later on I realised that $120,000 was more than a years wages, and i
could have written it in a year.

Well, now I am. :)

Using somewhat smarter terminals than the Wyse 50's and VT100's. They
are called web browsers. I am just using it as a smart terminal to
present forms for a database.


The server would have do the job : all in a JS array
And JS would have only to use this array (not to build it !)
fly(index);

yeah. I pondered that approach. However in the end I prefer no to use
other peoples libraries: I make my own that do what I want exactly, and
I can fix them when they end up slow, or whatever.

Plus at the time I started this, I was pretty ignorant about javascript
and the DOM, as you can see.

So the less javascript teh better was my initial assumption.

Now I am getting more familiar, it doesn't seem such a bad approach..but
I dot want to redo everything iove got so far thanks!
forgive to have the page completely made in html
leave the JS to complete from Json array each flyout on demand
Yeah. I hear you. But that mens I cant proto styles and layouts easily
on a non script environment. Like e.g. using dreamweaver to make
appearances and then adding the scripts to fill in values. Not that I
am, but its easier to debug CSS stuff than javascript. i have to look
for the optimal path through this, whih isn't always the most elegant.
Going all script makes it more elegant, but would require a months rewrite.

OK or some


The tag 'A' ?
as shown previously here : <http://cjoint.com/?lDsFPCPNv4>
and that doesn't need javascript (click the top link to see the code)
Details are in a hidden <span> revealed on mouse overing its parent.

Can a style="position; absolute;" be applied to a span?
with a small example it could be easiest to see the purpose.


I begin to see.


that's the job of a next file, no ?

Nope. Next div actually.

There's a reason for all this. The users - possibly remote - will
tolerate a slow page load, and a slow update of the database, but they
won't tolerate low navigation through the items.

The customer is thinking in terms of having a fairly slow link from a
laptop and mobile phone, to sell at trade shows and outdoor fairs.

Now filling in e.g. sales order could be done by building up a page
using script and then doing one update. But only if all the data needed
is there.


The particular form I am doing now wont ever be used on a slow link, so
its not crucial here, but the basic way of selecting parts may be, one
day next year ;-)

So as little traffic of a *regular* sort is the ideal; But one big
'update the sales database with 4k of insert'; is OK.


I think you need no identifier,

I need it as the TARGET of what to switch on.

And, once switched on, to know waht to swith OFF, because I need to leve
various bits on as the mouse moves over the tree structure. I need to
leave the parent nodes on.
 
T

The Natural Philosopher

Conrad said:
Its been and continues to be an interesting exercise in code
optimisation: On the one hand it may well be used on relatively low
bandwidth connections, and there compressing the HTML has reduced page
load times impressively (well, if the machine that decompresses has the
horsepower anyway) [...]

I am not sure how the ZIP algorithm works, but it seems to be able to
turn 2000 lines of essentially almost identical information into not
very much at all. [...]
My biggests lag locally is now decompressing the page..about half a
second.

If you're talking about HTTP compression, I highly doubt that. A
document with ~2000 (normal sized) lines will be decompressed in memory
in a matter of microseconds or less. Better look for the source of your
lag elsewhere.

Ok, I will.

Actually I think you are probably right.

I suspect the lag is actually the browser assembling an awful lot of
elements and getting around to building the DOM itself.

Or perhaps its php taking time to compress..
If you're curious about how ZIP works, the algorithm is described here:
http://en.wikipedia.org/wiki/DEFLATE

Thanks. I will.

Anyway a manual zipping of the source suggest at 5:1 reduction or
thereabouts.

From around about a second of download time to about 200ms, on a slow
link.

Thats good enough.
 
R

rf

The Natural Philosopher said:
Actually its a complete stock list from a small manufacturing company.


There are about 1000 items in it in about 50 categories organised as a
hierarchy. I need to be able to rapidly navigate this in order to create
assemblies of parts, and also to populate sales and purchase orders.

FFS do this server side.
 
T

The Natural Philosopher

SAM said:
Le 12/1/08 12:37 AM, David Mark a écrit :

So sorry.


Do you think ? He says he's a good programmer, no ?

I refuse to learn more than I need to to get the immediate job in hand done.

I learnt that running businesses. There isn't enough time in the day to
get to the intense detail of everything, and a road that goes in the
right direction, even if it not the BEST road, may be a faster road than
spending longer than the journey time, deciding which one IS. ;-)

I asked some very simple questions, about how to identify DOM elements
rapidly, or preload their values into javascript.

Jorge was helpful enough to actually answer those by saying 'it cant be
done' which meant that my hack was as good as anything else, unless I
totally changed the approach.

Now I agree in an ideal world, going 'all script' is arguably better.

But I haven't TIME to get to that. it would take me longer to recode to
do that, for no actual performance gains.

So, apologies to those whose suggestions I DIDN'T follow up, and no
disrespect. I have a lot to do here.

Anywy te customer likes it. So thats good enough for now.
 
T

The Natural Philosopher

rf said:
FFS do this server side.
Speed.

Slow links.

There are reasons why its done the way it is.

Anyway its OK now, with the help from here.

Apart from having made infinite recursion possible server side..sigh.
Another routine to rite, so that children can't father their parents.. ;-)
 
R

rf

The Natural Philosopher said:
Speed.

Slow links.

There are reasons why its done the way it is.

Anyway its OK now, with the help from here.

So where is this site?
 
T

The Natural Philosopher

rf said:
So where is this site?
behind a firewall. Its not a site. Its a database application.

If you are curious, you can see the front face of it, which is not the
code we have bee discussing, here

www.blackandwhite-models.com/Replikit.

That is a test *site* that is publicly visible.

What I am working on is the admin area behind it.
Today.
 
R

rf

The Natural Philosopher said:
rf wrote:
behind a firewall. Its not a site. Its a database application.

If you are curious, you can see the front face of it, which is not the
code we have bee discussing, here

www.blackandwhite-models.com/Replikit.

That is a test *site* that is publicly visible.

What I am working on is the admin area behind it.
Today.

I see no 1000 items.

I see a site that uses <spit>frames</spit> and not a very good one at that.
 
S

SAM

Le 12/1/08 12:21 PM, The Natural Philosopher a écrit :
Absolutely the reverse is true here. *Never* relative. I want pixel
accuracy on everything so that the screens look identical no matter what
browser or what size the screen is.

Non sens !
That is misunderstanding how works a navigator (and css).
The user can fix his preferences, as such as characters no lower than
14px for instance, while you fixed them to 10px.
I am not trying to be a nice HTML site,

No nice nor pretty or funny matter.
With an html well built (conform) using its hierarchical tags cleverly
(or only normally) all is then easier to arrange the display.
Not if hey have just been switched on they aren't.

Perhaps could you have a look on my last exchanges with David and
Laurent that run me to a simple (I mean an unique) listener on the
entire page that does all the job without having
- to traverse the DOM on load
- to hide all divs they are to
Result :
<http://cjoint.com/data/lEvswiroOX_flyout_noLeak_LV_Listener.htm>
Source-code :
<view-source:http://cjoint.com/data/lEvswiroOX_flyout_noLeak_LV_Listener.htm>

This example is only an example +/- well finished and certainly doesn't
display items and their details as you want, so don't take care of that.

This little demo is only an example with some items and their details
hard coded (no JS to fill up the page) to show how an alone function can
survey all elements of a page (without having to run through the DOM for
inspect all items or for hiding their details)
Ive tried on occasion a few other peoples libraries and found them
extremely fragile.

Json is not a "library" in the sens you ear it : it is a tool.
And a tool very light and very fast and very very very -if not
extremely- useful when you have to exploit databases.

I give you back url :
client-side :
<http://www.json.org/js.html>
php server-side :
<http://pecl.php.net/package/json>
Json :
In fact this whole *project* goes back about 17 years to when somneone
aid 'there must be some stock control manufacturing software out there
that does all this' (...)
Well, now I am. :)

but since 17 years a lot of new features shorter or faster have born.
yeah. I pondered that approach. However in the end I prefer no to use
other peoples libraries: I make my own that do what I want exactly, and
I can fix them when they end up slow, or whatever.

It is not showing cleverness when you prefer to remake (badly ?) what
others made better than you ever think to get.
Plus at the time I started this, I was pretty ignorant about javascript
and the DOM, as you can see.

It's the case to say so ;-)
So the less javascript teh better was my initial assumption.

Try to progress as you're wrong in your approach of the problem.
Now I am getting more familiar, it doesn't seem such a bad approach..but
I dot want to redo everything iove got so far thanks!

Good, formidable (private)David: means wonderful(/private).
Yeah. I hear you. But that mens I cant proto styles and layouts easily
on a non script environment. Like e.g. using dreamweaver to make
appearances.

Ho! If you are yet using DW you're not at the end of your pain !
To use DW you have to know, at least well, the HTML and CSS, if not
that's the soft which decides for you or run you in errors (as absolute
that is the default feature proposed by DW).
I all code manually in a text-editor who knows the html (and has
colorized-codes for JS, CSS, HTML (and a lot of programming languages))
and then adding the scripts to fill in values.

You only have to html code one, and only one, item and to arrange it
with CSS (hiding/showing details or whatever you need to).
Then the JS with help of Json will create the 999 following items.
Cloning the initial item then changing its contents with what it is in
the Json array and finally adding the new one, and that for the 999.
(the filling of details can also be made only on demand, as soon as you
mouse over an item, instead of to complete all of them on loading and to
spend some milliseconds more at load)
but its easier to debug CSS stuff than javascript.

The main problem is your used of JavaScript, I think.
Seen from my chair, your mis knowing of what JS is able to do doesn't
help you in your project.
Going all script makes it more elegant, but would require a months rewrite.

Mais non !
Just to begin back from scratch.
If your database is well organized and filled up, and if you use json
approach to extract datas, most of the job is done.
The JS script would have to be finished since we are talking of it here.

Can a style="position; absolute;" be applied to a span?

Did you have a look to previous links (view-source) ?
Can you read a stylesheet (and understand it) ?

Once more, you certainly do not need absolute positioning.

span { display: block; position: absolute }
a { display: block; position: absolute }
tt { etc ... }
but with tt it's a syntax error as this tag is to display text in font
Courier.

Did you ear speaking of float: left; float: right; ?
(and clear: both; )

To put in a favorite-button of your personal bar :
Nope. Next div actually.

I wanted to say to command the candies.
Now filling in e.g. sales order could be done by building up a page
using script and then doing one update. But only if all the data needed
is there.

Did you ear of Ajax ?
I need it as the TARGET of what to switch on.

No.
See the demo above where no item has an ID.
(it use only an alone target for all the items)
The html ID can help to find an article in the server-side database.
Notice that an html ID cannot begin with a number.

At worst with a Json approach you have the array of items and each
sub-array of their contents, the item knows its own index (given on load
by php or JS, depends your choice) and it has only do display its own
sub-array (at same index).
 
S

SAM

Le 12/1/08 1:24 PM, The Natural Philosopher a écrit :
I refuse to learn more than I need to to get the immediate job in hand
done.

Without knowing exactly what you have to display,
I think that some guys here are capable to estimate the best way to do
what you expect and to estimate the time to spend to create this
application than you seem to be able to.

Probably with a correct approach, a correct plan, and beginning back
from scratch it wouldn't need more time than to continue to tinker what
you got.

even if it not the BEST road, may be a faster road than
spending longer than the journey time, deciding which one IS. ;-)

That is all decided : json approach !
(but I think now you follow this way, or something close)
 
T

Thomas 'PointedEars' Lahn

Conrad said:
[...]
If you're talking about HTTP compression, I highly doubt that. A
document with ~2000 (normal sized) lines will be decompressed in memory
in a matter of microseconds or less. Better look for the source of your
lag elsewhere.

If you're curious about how ZIP works, the algorithm is described here:
http://en.wikipedia.org/wiki/DEFLATE

gzip (used for compression of HTTP message bodies) != ZIP (used primarily
for compression of files), although both are based on DEFLATE.

<http://en.wikipedia.org/wiki/ZIP>
<http://en.wikipedia.org/wiki/gzip>


PointedEars
 
D

David Mark

Le 12/1/08 12:21 PM, The Natural Philosopher a écrit :



Non sens !
That is misunderstanding how works a navigator (and css).
The user can fix his preferences, as such as characters no lower than
14px for instance, while you fixed them to 10px.


No nice nor pretty or funny matter.
With an html well built (conform) using its hierarchical tags cleverly
(or only normally) all is then easier to arrange the display.



Perhaps could you have a look on my last exchanges with David and
Laurent that run me to a simple (I mean an unique) listener on the
entire page that does all the job without having
- to traverse the DOM on load
- to hide all divs they are to
Result :
<http://cjoint.com/data/lEvswiroOX_flyout_noLeak_LV_Listener.htm>
Source-code :
<view-source:http://cjoint.com/data/lEvswiroOX_flyout_noLeak_LV_Listener.htm>

This example is only an example +/- well finished and certainly doesn't


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">

But it isn't, it is in English.

<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="License" content="http://creativecommons.org/licenses/by-
nc-sa/3.0/deed.fr">

No need to worry about that yet.

<title>Untitled</title>
<style type="text/css">
form { display: block; margin-left: 280px; right: 200px; }
..bonbon { float: left; margin: 9px; padding: 8px; text-align: center;
cursor: pointer;
border: 1px solid red; background: gold; width: 25% }
div dl { display: none; border: 1px solid; background: #ffc;
text-align: center }

Some agents will never be able to show those with script. Never
assign display:none like that (at least not on the Web.)

#viewer { position: fixed; _position: absolute; top:50px;
width: 250px; left:30px; display: none }

_position?

#viewer dl { display: block; }
#viewer dt, #viewer dl { margin:0; padding: 6px }
#viewer img { width: 80%; }
#viewer span { display: block; margin: 8px; color:red; background:
white; padding: 4px 9px; border: 1px solid; }
input.qq { width: 2em }
</style>
<script type="text/javascript">

/****************** with Laurent's code : ***********************/
function getTarget(e)
{
var target;
e = e || window.event;
// e.srcElement, is for IE
target = e.target || e.srcElement;
// old safari bug

Neither a bug, nor specific to Safari (of any age.)

if ( target.nodeType === 3 ) { target = target.parentNode; }
return target;
}

function listener(e)
{
var target = getTarget(e);
// we got a target and we don't know what it is !
// not the more efficient way to detect, blah blah, yeah I know
if ( target && target.tagName)

Well, we know we got an element. We want to know if the tagName
property is a string.

{
var t = target.tagName.toUpperCase();
if(t == 'DIV'|| t == 'H3')
{
while(target.tagName.toUpperCase() != 'DIV') target =
target.parentNode;

Yikes. Tighten up that loop condition.

fly(target);
return false;
}
}
return true;
}

window.onload = function()
{
var ul = document.body; // getElementsByTagName('div')[0];
ul.onmouseover = listener;

Better. Odd name for the variable though. And is there not a list
somewhere to use instead of the body?

/************* end Laurent's code *******************/

function fly(that) {
// not the more efficient way to detect, blah blah, yeah I know
var f = that.getElementsByTagName('dl')[0].cloneNode(true);
f.style.display = 'block';
var v = document.getElementById('viewer'); // yes it's there. I know,
that's me who wrote it !

You still test the result. You can't know for sure that you have a
reference to it without testing. What if some stupid advertising
script clobbered it?

if(v.getElementsByTagName('dl').length>0) {

Remove the ">0".

v.removeChild( v.getElementsByTagName('dl')[0] );
}
v.appendChild(f);
if(document.all) {
v.style.top = -50+that.offsetTop+'px';
}

Are you a programmer or a comedian?

[snip]
 
T

The Natural Philosopher

rf said:
I see no 1000 items.

I see a site that uses <spit>frames</spit> and not a very good one at that.
Well **** you too!

I said what lies behind it is 1000 items.

There are only about 300 assemblies/parst for SALE.. I don't mark ever
nut bolt screw and cut piece of wood as visible for sale in the shop.

The shop uses almost no javascript either, as many browsers may not
handle it well.

Its the back office stuff thats being worked on - the shop is just a
showpiece for comment.
 
T

The Natural Philosopher

SAM said:
Le 12/1/08 1:24 PM, The Natural Philosopher a écrit :

Without knowing exactly what you have to display,
I think that some guys here are capable to estimate the best way to do
what you expect and to estimate the time to spend to create this
application than you seem to be able to.

Probably with a correct approach, a correct plan, and beginning back
from scratch it wouldn't need more time than to continue to tinker what
you got.



That is all decided : json approach !
(but I think now you follow this way, or something close)
Nope. I am going my own way.
In essence, as little javascript for teh site facing the world, and only
as much as is absolutely necessary to get what I want, tuned to go as
fast as I can get it.

I am sure your stuff is great, but I don't have the time to look at it.

Been chasing SQL speed issues today instead.
 
D

David Mark

Yikes.




Well **** you too!

I said what lies behind it is 1000 items.

I can guess what lies behind it.
There are only about 300 assemblies/parst for SALE.. I don't mark ever
nut bolt screw and cut piece of wood as visible for sale in the shop.

You won't have to worry about sales.
The shop uses almost no javascript either, as many browsers may not
handle it well.

Seems sensible to use as little of your scripts as possible.
Its the back office stuff thats being worked on - the shop is just a
showpiece for comment.

Your site is abominable, even by your wretched standards.

[snip]
 
S

SAM

Le 12/1/08 7:05 PM, David Mark a écrit :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">

But it isn't, it is in English.

Ha? Did I write in English by inadvertence ?
Sorry, next time I'll write in French.
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="License" content="http://creativecommons.org/licenses/by-
nc-sa/3.0/deed.fr">

No need to worry about that yet.

Nope indeed.
(as previous and some next, all that are in a template that I reuse)
<title>Untitled</title>
<style type="text/css">
form { display: block; margin-left: 280px; right: 200px; }
.bonbon { float: left; margin: 9px; padding: 8px; text-align: center;
cursor: pointer;
border: 1px solid red; background: gold; width: 25% }
div dl { display: none; border: 1px solid; background: #ffc;
text-align: center }

Some agents will never be able to show those with script. Never
assign display:none like that (at least not on the Web.)

#viewer { position: fixed; _position: absolute; top:50px;
width: 250px; left:30px; display: none }

_position?

Hack for the BS IE. (doesn't know what is 'fixed', no?)
#viewer dl { display: block; }
#viewer dt, #viewer dl { margin:0; padding: 6px }
#viewer img { width: 80%; }
#viewer span { display: block; margin: 8px; color:red; background:
white; padding: 4px 9px; border: 1px solid; }
input.qq { width: 2em }
</style>
<script type="text/javascript">

/****************** with Laurent's code : ***********************/
function getTarget(e)
{
var target;
e = e || window.event;
// e.srcElement, is for IE
target = e.target || e.srcElement;
// old safari bug

Neither a bug, nor specific to Safari (of any age.)

OOOooooppppssss ! forgotten the David Mark's annotation. :)
if ( target.nodeType === 3 ) { target = target.parentNode; }
return target;
}

function listener(e)
{
var target = getTarget(e);
// we got a target and we don't know what it is !
// not the more efficient way to detect, blah blah, yeah I know
if ( target && target.tagName)

Well, we know we got an element. We want to know if the tagName
property is a string.

Do you translate what is coded, or did I make an error ?
Doesn't it enough to know there is a tag regardless of whether it's a
string or a Martian ?
{
var t = target.tagName.toUpperCase();
if(t == 'DIV'|| t == 'H3')
{
while(target.tagName.toUpperCase() != 'DIV') target =
target.parentNode;

Yikes. Tighten up that loop condition.

Certainly you want to help me to progress in English,
'Yikes' isn't in my dictionary.

The rest has not more sens for me.
Why and how to strengthen this condition?
fly(target);
return false;
}
}
return true;
}

window.onload = function()
{
var ul = document.body; // getElementsByTagName('div')[0];
ul.onmouseover = listener;

Better. Odd name for the variable though.

As I said : +/- finished
and large parts of code are copied-pasted from the NG
and its author specified.

I do not more know if window has to be called or not with all what you
told around Jim Ley's posts.
And is there not a list somewhere to use instead of the body?

I used lists in other tests, and could destabilize someone ;-)

One step after one.
I try to show something to somebody.
If he is interested and begin to understand ... perhaps some more ?
.... when I'll have learned more about listeners.
/************* end Laurent's code *******************/

function fly(that) {
// not the more efficient way to detect, blah blah, yeah I know
var f = that.getElementsByTagName('dl')[0].cloneNode(true);
f.style.display = 'block';
var v = document.getElementById('viewer'); // yes it's there. I know,
that's me who wrote it !

You still test the result. You can't know for sure that you have a
reference to it without testing.

As I wrote, the code was wrote by myself with my own finger so
I know the div exists.
(Yes I tape with only 1 finger ! + my thumb)
What if some stupid advertising script clobbered it?

Who accept advertisement in his pages ?
That could exist ?
if(v.getElementsByTagName('dl').length>0) {

Remove the ">0".

Not bad.

v.removeChild( v.getElementsByTagName('dl')[0] );
}
v.appendChild(f);
if(document.all) {
v.style.top = -50+that.offsetTop+'px';
}

Are you a programmer or a comedian?

Certainly not a programmer, I do not even know what that can be.

If you have a very short code to tell IE where to place the div you're
welcome.
 
S

SAM

Le 12/1/08 7:26 PM, The Natural Philosopher a écrit :
Nope. I am going my own way.
In essence, as little javascript for teh site facing the world, and only
as much as is absolutely necessary to get what I want, tuned to go as
fast as I can get it.

I will not come back on that.
I am sure your stuff is great, but I don't have the time to look at it.

Been chasing SQL speed issues today instead.

:-( I understood all that was made !

Json ? no ? sure ?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top