Re: Query or Array functions [message #176969 is a reply to message #176965] |
Fri, 10 February 2012 14:26 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 2/10/2012 8:54 AM, Scott Johnson wrote:
> On 2/9/2012 5:39 PM, Michael Fesser wrote:
>> .oO(Scott Johnson)
>>
>>> First off I am doing this on a back-end admin page.
>>> I have a DB with lets say 5000 records and a dozen or more fields.
>>>
>>> On the page which will display these records I am planning on using
>>> pagination to display so many records at once. So far so good.
>>>
>>> What i would like to do is provide a row above the table of records
>>> where the user can enter text to filter the display on each column.
>>>
>>> I plan to use AJAX and filter as the user types which in itself is not a
>>> problem.
>>
>> Why AJAX? Why not do it the simple way with a "refresh" button?
>>
>>> The problem I see is the numerous DB queries and I don't see querying
>>> the DB each time the user types a letter as a practical approach. (I
>>> could be wrong).
>>>
>>> What I was thinking of doing is loading the full record set into an
>>> array and then filter out the array of the needed data as the user
>>> types.
>>>
>>> I have not done any intense array manipulations like this before and am
>>> wondering if this seems like a practical approach.
>>
>> I don't think so. You still have to fetch the data from the DB whenever
>> the user changes the filter. Every AJAX request to the server is just
>> another HTTP request, completely independent from all others before.
>>
>> You can't store big data from one request and then just output parts of
>> it on every coming request (unless you store all the data in a session,
>> but this wouldn't make much sense here and would still cause a lot of IO
>> overhead).
>>
>> In other words: Every request (including the ones via AJAX) causes your
>> script to start from scratch again, so you have to fetch the data and
>> filter it over and over again anyway. Also don't forget that after the
>> user changes the filter options, the new data has to be transferred to
>> the client. When there's a lot of records, this might take some time.
>>
>> Don't expect a real-time display and ask yourself: Do you really need
>> AJAX stuff or wouldn't it be enough to use a good old-fashioned form
>> with a "refresh" button?
>>
>> Micha
>>
>
> Thanks Micha
>
> You bring up a great issues to the idea of accessing the data without a
> separate page load. The data would need to be loaded into a session to
> be accessible with subsequent calls to the server w/o calling an entire
> page load.
>
Whether the data are in a session or not has nothing to do with whether
the page is loaded or not. If the data reside on the server (whether in
the database or the session variable), it will take a request to the
server (either a page load or ajax) to access the data. If the data are
on the client, no request to the server is required.
> Not sure how loading a large data set into a session would affect
> performance. I know 5000 records is not all the large in the big picture
> of large things but I like to 'try' to think ahead to larger issues.
>
Significantly.
> But Thomas brought up a good point of data being modified after the
> initial page load would not be represented any longer. So I think the
> separate data scheme is not a feasible solution any longer.
>
> Thanks
Too many variables to say for sure. It might be ok for a shopping cart,
for instance. But not for lap times in a car race.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|