2010-11-26 14 views
0

Ich zeige einige Informationen über die Maus auf den Links schweben. Ich mache das, indem ich einen AJAX-Aufruf mache, indem ich die Links schwenke und die Daten aus der Datenbank abrufe.Ajax Anruf auf Maus auf Links schwebt

Problem ist, dass, wenn ich Maus mehrmals auf dem gleichen Link schweben wird es den AJAX Anruf machen und die Datenbank jedes Mal treffen. Aber ich möchte, wenn es einmal die Daten aus der Datenbank für einen bestimmten Link beim zweiten Mal Mausmaus holen, sollte es nicht die Datenbank erneut schlagen. Dafür muss ich die Daten auf der Client-Seite irgendwo speichern und wiederverwenden (glaube ich).

Was ist der beste Ansatz, um mit dieser Situation umzugehen? Kann mir jemand die Lösungen vorschlagen?

P.S: Ich habe mehr als 20 solcher Links in der Seite.

+0

können Sie Beispielcode eingeben: D – confusedMind

Antwort

0

Verwenden Sie die One Funktion, es garantiert, dass der Aufruf einmal ausgeführt wird.

0

Sie könnten die Informationen in einem oder mehreren versteckten Feldern speichern. Überprüfen Sie bei der ersten Anfrage, ob die angeforderte Information dort bereits verfügbar ist. Falls nicht, klicken Sie auf die Datenbank.

+0

Wie können Sie das erklären? – ANP

0

Kann dies ein falscher Weg sein, aber man kann auf diese Art und Weise dies tun:

für den Anker-Tag definiert Klassenattribut und die Klasse auf true nach dem Laden von Daten aus Datenbank auf false ändern, wenn wieder jemand auf diesen Link klicken überprüfen Sie den Klassennamen, was richtig oder falsch auf diese Weise signalisiert, dass Sie

<a class="load-true"></a> 

Daten nach dem Laden

<a class="load-false"></a> 

und überprüfen Klassendaten zu laden, tun.

dank

0

auf der Seite JavaScript, verwenden Sie eine Hash-Tabelle, wo die Schlüssel zu den IDs von Verbindungen entsprechen, die schwebten wurden. Sie rufen die DB nur an, wenn Sie einen neuen Schlüssel einfügen (wie in allHovers [curHover] ++;). Ein weiterer Nebeneffekt ist, dass Sie eine Liste von 0,Hovern haben, die Sie jederzeit referenzieren können.