假设我在JavaScript文件的顶部声明一个等于0的全局JavaScript变量
即。
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.phonon import Phonon
class Widget(QWidget):
def __init__(self, *args, **kwargs):
QWidget.__init__(self, *args, **kwargs)
lay = QVBoxLayout(self)
vp = Phonon.VideoPlayer()
media = Phonon.MediaSource('/path/of/video')
vp.load(media)
vp.play()
scene = QGraphicsScene()
self.view = QGraphicsView(scene, self)
lay.addWidget(self.view)
proxy = scene.addWidget(vp)
# or
# proxy = QGraphicsProxyWidget()
# scene.addItem(proxy)
self.item = scene.addEllipse(QRectF(0, 0, 20, 20), QPen(Qt.red), QBrush(Qt.green))
self.item.setParentItem(proxy)
def mousePressEvent(self, event):
p = self.view.mapToScene(event.pos())
# move item
self.item.setPos(p-QPoint(20, 20))
QWidget.mousePressEvent(self, event)
def resizeEvent(self, event):
if event.oldSize().isValid():
print(self.view.scene().sceneRect())
self.view.fitInView(self.view.scene().sceneRect(), Qt.KeepAspectRatio)
QWidget.resizeEvent(self, event)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
然后我调用JavaScript中的函数将该变量设置为1 即。
var jVar=0;
如果我重新加载页面,那么在调用function setVarToOne(){
jVar=1;
}
函数之前变量会等于什么?
setVarToOne
是否会保留函数中设置的值,还是会重新初始化为0?
我需要了解的是,重新加载页面时JavaScript变量会发生什么?
谢谢
答案 0 :(得分:2)
当您重新加载页面时,JavaScript中的所有内容都将丢失,代码将像您第一次加载页面时一样执行。
这意味着,您的变量将初始化为0,并且在调用该函数时,该变量将设置为1.
答案 1 :(得分:2)
当您重新加载页面时,jVar
将设置为0
;因为你是在第一级初始化它var jVar=0;
由于在重新加载期间未调用您的函数。
如果您拨打setVarToOne()
,那么只有那时您的全局变量值才会发生变化。
您还可以选择在localStorage中设置值
localStorage.setItem(id, value);
答案 2 :(得分:1)
var jVar=0;
document.write(jVar+'<br>');
function setVarToOne(){
jVar=1;
}
setVarToOne();
document.write(jVar);
结果: 1°document.write:0 2°document.write:1
每次加载/重新加载页面时,变量'jVar'将设置为0然后设置为1
答案 3 :(得分:0)
您的变量将设置为0.
当您重新加载页面时,整个脚本从头开始再次运行 - 从而首先运行var jVar=0
。
如果您需要保存数据,可以使用本地存储,会话存储,Cookie或将其保留在服务器上。
看一下this question,讨论在页面加载之间保持变量的问题。
答案 4 :(得分:0)
它将是0。
默认情况下,Javascript无法在两个页面加载之间保持状态。您可以先尝试保存,然后从某个商店读取数据。通过API调用或将其保存到localStorage,cookie或其他一些数据存储。
答案 5 :(得分:0)
全局变量是将在整个Session中存储的变量。 当你想存储会话之外的东西时使用PHP。 您需要PHP来存储全局变量。 复制您的代码并将其放在php文件中。 在这个文件中写下这个,
PCollection<T> step = ...;
PCollection<T> afterStep = step.apply(ParDo.of( new DoFn<...>(){...}));
afterStep.apply(ParDo.of(new DoFn<...>(){...}));
变量将存储在会话中,您只需将该值传递给js by
<?php
session_start();
$_SESSION['JVar'] = 0;
function setVarToOne(){
$_SESSION['jVar'] = 1;
}