Mit zwei <a>
:So aktualisieren Sitzungsobjekt
<a id="100" onclick="createTriggered(this.id)"<i></i> Click Link </a>
<a id="200" onclick="createTriggered(this.id)"<i></i> Click Link </a>
beide im Zusammenhang mit der gleichen onClick
JavaScript-Funktion:
<script type=text/javascript>
$SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
function onClick(id){
var data = $.getJSON($SCRIPT_ROOT + '/triggered', {a:id});
window.alert({{ "session.keys()" }});
}
</script>
Diese JavaScript-Funktion, die angeklickt <a>
id nimmt und sendet diese Funktion in den Kolben:
@app.route('/onClick')
def onClick():
session['a_id'] = request.args.get('a')
return ('ok')
Achtern er Flask Funktion wird id
es aktualisiert session
Objekt erstellen einen neuen Schlüssel session['a_id']
.
Schließlich Javascript window.alert
wird verwendet, um zu überprüfen, ob das session
Objekt hat die neue 'a_id' Taste, die bereits durch Flask-Funktion festgelegt werden sollte. Wenn window.alert
erscheint, wird angezeigt, dass der neue Schlüssel fehlt. Aktualisieren der Seite und erneutes Klicken auf die <a>
Link wird die window.alert()
wieder auftauchen, aber dieses Mal zeigt die neue session['a_id']
Schlüssel ist da. Es sieht so aus, als ob das Update des Objekts session
hinterherhinkt. Ich muss die Seite aktualisieren, damit der Browser die von der Flask-Funktion vorgenommene Änderung übernimmt. Gibt es eine Möglichkeit, sicherzustellen, dass das Update von der Flask-Funktion auf das session
Objekt sofort reflektiert wird? Schließlich, da ich das Objekt, das für die gesamte Sitzung global ist, aktualisieren möchte ich wirklich keine Vorlage zurückgeben oder an einen anderen Link umleiten. Alles, was ich will, ist die Flask-Funktion, um die Variablen session
so einzustellen, dass sie irgendwo in der Logik verwendet werden kann. Wäre es in Ordnung, in diesem Fall einen Dummy-String von der Flask-Funktion zurückzugeben?