Sasa Posted July 16, 2009 Report Share Posted July 16, 2009 Kā varētu pāatrināt DropDown lista aizpildīšanu ar vērtībām, vērtības tiek ņemtas no datubāzes un kopā viņu ir ~358. Šobrīd aizpildās 2 neilgās sekundēs. Quote Link to comment Share on other sites More sharing options...
Wuu Posted July 16, 2009 Report Share Posted July 16, 2009 Iemet skriptu un mysql tabulas struktūru paskatīsimies! 2 sekundes 358 ierakstiem tākā smagi par daudz. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted July 16, 2009 Report Share Posted July 16, 2009 Vairāki varianti nāk prātā: 1) Aizpildīt ar biežāk izmantojamajām vispirms un pārējās ielādēt tikai pēc īpašas vajadzības... Pēc statistikas raugoties no ~350 vērtībām vispieprasītākās būs ~70 (Pareto princips) 2) Sadalīt pa vairākiem DropDowniem, kur nākošais tiek aizpildīts tikai pēc iepriekšējā izvēles -> kategorizēšana. Patiesībā - jautājums ir: kā šīs 2 sekundes sadalās? Cik ilgu laiku notiek datu atlase uz servera, cik ilgā laikā notiek pārsūtīšana no servera uz pārlūku un cik ilgā laikā notiek attēlošana/renderēšana pārlūkā. Jāskatās, kur ir lielākā aizture un ar tās samazināšanu ir jāsāk. Uz servera jāpārbauda, vai ir optimāls SQL/datu ieguves pieprasījums, pa tīklu - vai nevajag kompresēt datus, pārlūkā - vai nevar izmantot ne tik resursprasīgu renderēšanu. Īsāk sakot - jāzina vairāk par tā dropDowna saturu un izcelsmi un turpmāko izmantojumu. Varbūt var neizmantot dropdownu, bet gan ar AJAXu būvēts auto-complete būs efektīvāks. Quote Link to comment Share on other sites More sharing options...
ohmygod Posted July 16, 2009 Report Share Posted July 16, 2009 ja nemainās dinamiski, bet tiek no admina koriģēts, tad ir iespēja pie katra updeita sagatavot gatavu failiņu/memcached e.t.c. ar dropdown saturu un tad to tikai ielādēt neaiztiekot datubāzi vispār. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted July 16, 2009 Report Share Posted July 16, 2009 Lūk viena Flex aplikācija, kas demonstrē, kā mainās ātrums atkarībā no tā, kā tiek padoti/saņemti renderēti dati: http://www.jamesward.org/census/ Quote Link to comment Share on other sites More sharing options...
Sasa Posted July 16, 2009 Author Report Share Posted July 16, 2009 kods: MySqlConnection myConnection = new MySqlConnection(MyConString); string sqlAllProduct = "SELECT * FROM product"; MySqlCommand cmdAllProduct = new MySqlCommand(sqlAllProduct, myConnection); myConnection.Open(); MySqlDataReader ProductReader; ProductReader = cmdAllProduct.ExecuteReader(); // Always call Read before accessing data. while (ProductReader.Read()) { productDropList.Items.Add(ProductReader["code"].ToString()); } // always call Close when done reading. ProductReader.Close(); // Close the connection when done with it. myConnection.Close(); struktūra: Lauks Tips Nulle Noklusēts Komentāri MIME ID bigint(20) Nē code varchar(200) Nē description varchar(200) Jā NULL Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted July 16, 2009 Report Share Posted July 16, 2009 TAs ir kārtējais VBscript brīnums, va ne? :D Quote Link to comment Share on other sites More sharing options...
Sasa Posted July 16, 2009 Author Report Share Posted July 16, 2009 ASP.NET ar MySQL connectoru. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted July 16, 2009 Report Share Posted July 16, 2009 Ok, es pat nekomentēšu to, ka PHP sadaļā ASP.NET gluži neiederās... :D Bet saki - tas ASP.NETS, tak izpildās uz servera, vai ne? Ko dara šī rindiņa: productDropList.Items.Add(ProductReader["code"].ToString()); ? Ja tas ir uz klienta, tad varbūt vajag likt nevis pa vienam ar Item.Add() bet gan izveidot mainīgo, kas satur visu sarakstu un tad vienā rāvienā pieliek to tam DropDownam? Quote Link to comment Share on other sites More sharing options...
Sasa Posted July 16, 2009 Author Report Share Posted July 16, 2009 Items.Add papildina dropDown listu ar vērtību. Viss norisinās uz servera (tā vajadzētu būt). Es nezinu smalki MySQL, bet šķiet ka izskriet ~358 ierakstiem nevajadzētu iedarbināt tādu bremzi, ja tā tad kaut kas iebremzējas pie katra ieraksta nolasīšanas un pievienošanas listam. Aleksejs Mēģināšu taisīt kā teici, izveidošu sarakstu (kam vajadzētu notikt krietni ātrāk) un tad uz servera šo sarakstu ielikt iekš list'a. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted July 16, 2009 Report Share Posted July 16, 2009 Nu redz - jautājums ir ko īsti tas item.add dara. Ja tas katru atgriezto ierakstu sūta pa vienam - tad tas iebremzē. Quote Link to comment Share on other sites More sharing options...
Sasa Posted July 16, 2009 Author Report Share Posted July 16, 2009 (edited) jā tā arī sanāca, tagad kad atdalīju šīs darbības tagad viss norisinās krietni ātrāk. btw ... kas notiek ar boota forumu, ko tas tā čakarējas, nav kur uzdot jautājumus. Edited July 16, 2009 by Sasa Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.