当用户在其浏览器上点击"刷新"时,它会重新加载页面但保留表单字段的内容.虽然我可以看到这是一个有用的默认设置,但在某些动态页面上可能很烦人,导致用户体验受损.
在HTTP标头或等效物中,有没有办法改变这种行为?
这既是一个问题,也是一个答案.我今天遇到了一个错误,我多年来从未见过作为网络开发人员,所以我想与将来可能会遇到这个问题的任何人分享这个问题.我也很好奇是否有其他人经历过它,以及是否有已知的原因.
该问题仅适用于Mac上的Safari 5.1.单击选择下拉菜单后,页面将完全刷新.经过几分钟的调试,我得出结论,这个错误是由......等待...在选择框上放置一个css边框.(border:1px solid #ccc;)
WTF?
显然,Safari的渲染引擎不喜欢那种风格,它只是整个页面的核心.它只有Safari 5.1(5.0.3很好)并且仅在Mac上.
在我公司的多个应用程序中,它可以100%重现.但它不是普遍可重复的100%,这意味着我不能只是去任何随机网站并触发它.它必须是css规则或html标记的某种组合才能触发它.
有没有人见过这个?有什么具体条件可能导致它的任何见解?如果没有,哦,好吧.我会把它归结为一个浏览器错误,并留下这篇文章给其他开发人员找到他们遇到同样问题的时间.
我正在为我的机器人从9个不同的传感器读取数据,我需要在同一个窗口中稳定地显示它们,这样我就可以比较这些值,看看是否有任何读数都关闭了.
我在Serial.print和lcd.print上遇到的问题是值不断移动,在移动机器人时我无法真正看到它们.
我想在显示任何其他东西之前调用类似Serial.clear()的东西,这样可以保持稳定并在一个地方,只改变值.
从我到目前为止发现的,不再支持Serial.print(17,BYTE)(调用ESC键).
那么......对于那些有更多Arduino经验的人来说......这样做的正确方法是什么?
function change(){
item = document.getElementById("first");
item.value = "second";
item.id = "second";
}
ob = document.getElementById("first");
ob.addEventListener("click",change);
Run Code Online (Sandbox Code Playgroud)
<input id="first" type="button" value="first">
Run Code Online (Sandbox Code Playgroud)
单击输入时,它变为:
<input id="second" type="button" value="second">
Run Code Online (Sandbox Code Playgroud)
我的要求是编写javascript代码,这样当你点击id为的输入时,second网页就会刷新.也就是说,要更改当前的输入元素:
<input id="second" type="button" value="second">
Run Code Online (Sandbox Code Playgroud)
进入上一个:
<input id="first" type="button" value="first">
Run Code Online (Sandbox Code Playgroud)
这是我的尝试:
function change(){
item = document.getElementById("first");
item.value = "second";
item.id = "second";
}
ob = document.getElementById("first");
ob.addEventListener("click",change);
function previous(){
document.execCommand('Refresh')
}
ob = document.getElementById("second");
ob.addEventListener("click",previous);
Run Code Online (Sandbox Code Playgroud)
<input id="first" type="button" value="first"> Run Code Online (Sandbox Code Playgroud)
error: Uncaught TypeError: Cannot read property 'addEventListener' of null
at line27.
Run Code Online (Sandbox Code Playgroud) 我已经开始学习 Flask 来开发 Web 应用程序。我真正缺少的是在任何代码更改(包括静态文件、模板等)后自动刷新浏览器。这似乎是几乎所有 Javascript 框架中的标准功能。前端人员对此有几个术语:自动重新加载/刷新,热重新加载/刷新(hotreload),实时重新加载/刷新(livereload),...
在 Stackoverflow 上,最相似的问题与 Flask 服务器的自动重新加载有关(--> https://stackoverflow.com/search?q=flask+auto+reload)。
J 只是想要一个简单的浏览器刷新。
我用谷歌搜索并尝试了几件事 - 没有运气:
如何在 Flask 中获得流畅的开发体验,而不必每天在浏览器中按 1000 次 F5 键只是为了查看更改的结果?
我认为答案python-livereload离上面的链接很近。所以我想我的问题的另一个标题可能是:
有人有 Flask + python-livereload 的工作示例吗?
我愚蠢地从他们的文档中获取它:)
编辑:为了完整起见,这里是我正在使用的 Flask 应用程序。
# filename: main.py
from flask import Flask, render_template
from livereload import Server
app = Flask(__name__)
@app.route('/')
def index():
return "INDEX"
@app.route('/bart')
def use_jinja():
return render_template('basic.html')
if __name__ == '__main__':
server = Server(app.wsgi_app)
server.serve(port=5555)
Run Code Online (Sandbox Code Playgroud)
我启动应用程序
python main.py
Run Code Online (Sandbox Code Playgroud) 我的asp.net网格中添加了命令按钮.使用该按钮执行操作后,我们刷新网格以反映新数据.(基本上这个动作重复了网格行).
现在,当用户使用刷新页面时F5,会显示一条警告消息(要将信息重新发送到服务器),如果我们选择"重试",则会自动重复该操作.
我知道这是asp.net中的常见问题,我们怎样才能最好地处理这个问题?
我正在使用html在浏览器上显示一个图像(来自文件)...我有另一个程序,它一直拍摄我的屏幕截图并将其存储为图像文件"image.jpeg".我使用setTimeout定期在浏览器上显示此图像.但是图像在浏览器上没有变化..
这是我的代码...我使用了一个Image对象,以便每次javascript函数运行时都会加载一个新图像,但这似乎不起作用...
<html>
<head>
<script type="text/JavaScript">
var x=0, y=0;
var canvas, context, img;
function timedRefresh(timeoutPeriod)
{
canvas = document.getElementById("x");
context = canvas.getContext("2d");
img = new Image();
img.src = "image.jpeg";
context.drawImage(img, x, y);
x+=20; y+=20;
//img.destroy();
setTimeout("timedRefresh(1000)",timeoutPeriod);
}
</script>
<title>JavaScript Refresh Example</title>
</head>
<body onload="JavaScript:timedRefresh(1000);">
<canvas id="x" width="600" height="600" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在研究应用程序JSF,我想定期刷新一个带有ajax的组件,如facebook通知区域行为.我怎样才能做到这一点?
在我们系统的其他地方寻找内存泄漏,我创建了一个带有元刷新标签的20 MB网页.我们的想法是通过我们的数据路径代码移动大量数据以确认内存稳定性.
<html>
<meta http-equiv="refresh" content="1">
<body>
<div style="border: 1px solid red">
Content loading
</div><!-- 20mb worth of comments -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我发现的是uiwebview显示元刷新页面非常非常快地泄漏内存.即使我们的代码没有播放,应用程序内存也会在大约2分钟内达到300mb并且会在低内存警告上被拍摄.
我已停止刷新加载并尝试取消分享webview.
我试过loadurl:"about:blank",loadhtml:"",javascript文档关闭.
我还尝试编写一个递归的removeFromSuperview和removeFromParentViewController,读取webview中的私有scrollview是一个内存问题,但该内存永远不会被释放.当我们完成它时,我似乎无法找到一种可靠的方法来关闭,取消一个webview.
我们在网页浏览速度缓慢的情况下生活了很长一段时间,并且确实希望找到一种方法来确保在完成后可以完全清理webview.我们最近将应用程序转换为ARC,但没有改变内存速率.
我正在考虑通过webview中的所有对象尝试递归循环,看看它们是否可以被释放.仪器显示20 mb的cfdatas,alive,每次刷新20MB页面,但不会将它们显示为泄漏.如果我只提供响应头并完成urlprotocol客户端我们运行稳定,所以ale确认其余数据路径中的memleaks,但这是一个如此戏剧性的测试用例结果我希望找到一个webview内存泄漏解决方案一次并为所有人.
有没有人有更好的想法,或者有没有人尝试通过uiwebview中的对象进行递归?
我有一个组合框,基本上select是一个由复杂对象数组填充的元素ng-options.当我在二级更新集合的任何对象时,此更改不会应用于组合框.
这也记录在AngularJS网站上:
请注意,
$watchCollection对象的属性(如果模型是数组,则为集合中的项)进行浅层比较.这意味着更改比对象/集合内的第一级更深的属性不会触发重新呈现.
<div ng-app="testApp">
<div ng-controller="Ctrl">
<select ng-model="selectedOption"
ng-options="(selectedOption.id + ' - ' + selectedOption.name) for selectedOption in myCollection track by selectedOption.id">
</select>
<button ng-click="changeFirstLevel()">Change first level</button>
<button ng-click="changeSecondLevel()">Change second level</button>
<p>Collection: {{ myCollection }}</p>
<p>Selected: {{ selectedOption }}</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
var testApp = angular.module('testApp', []);
testApp.controller('Ctrl', ['$scope', function ($scope) {
$scope.myCollection = [
{
id: '1',
name: 'name1',
nested: {
value: 'nested1'
}
}
]; …Run Code Online (Sandbox Code Playgroud) refresh ×10
html ×3
javascript ×2
ajax ×1
angularjs ×1
arduino ×1
asp.net ×1
canvas ×1
clear ×1
css ×1
erase ×1
flask ×1
hot-reload ×1
html5 ×1
http ×1
image ×1
ios ×1
jsf ×1
livereload ×1
macos ×1
memory ×1
memory-leaks ×1
ng-options ×1
postback ×1
python ×1
safari ×1
select ×1
terminal ×1
uiwebview ×1
webpage ×1