我的问题实际上不是ajax加载本身,更多的是没有javascript加载它的能力.我的意思是,我应付自如,当我编写我的整个项目只基于Ajax的可用性或 只是不使用Ajax.
//编辑:尽管Arend已经有了或多或少的有效答案,但同时"这个问题没有直接答案".但是,我想看看像我这样的场景开发人员的其他一些方法!即使只是一些链接可以帮助!
基本上我只是感到沮丧,在同一页面上编码所有内容两次,以确保没有和启用Javascript的用户都有相同的体验.这很烦人,我总是想知道其他人如何解决这个问题.
当我更新例如两个依赖于相同变量的div时,它会变得混乱.这是一个例子:
非JS版本
require 'classobject.class.php';
$another_var = 'something';
$class = new classobject($_POST['variable']); // just an example to show that this is dynamic - I'm aware of injection!
$function = $class->returnsth(); // returns 1
if(isset($_POST)) {
echo '<div id="one">Module 1 says:'; $require 'module_one.php'; echo '</div>';
echo '<br /><br />';
echo '<div id="two">Module 2 says:'; $require 'module_two.php'; echo '</div>';
}
Run Code Online (Sandbox Code Playgroud)
现在我module_two.php和module_two.php我的代码执行不同取决于$ function的返回变量.喜欢:
if($function >= 1 && another_var != 'something') {
// …Run Code Online (Sandbox Code Playgroud) 我正在 Rails 2.3.8 上开发项目,当用户在下拉菜单中选择特定选项时,我需要刷新整个网页。我怎样才能在导轨上做到这一点?
这是我的下拉菜单
<%= collection_select("country", "id", @countries , :id, :name, {:prompt => true}, :id => 'xx') %>
<%= observe_field('xx', :url => { :controller => 'calendar', :action => 'update_country' },:update => 'app_header',:with => "'con=' + escape(value)")%>
Run Code Online (Sandbox Code Playgroud)
这很好地加载了国家,所以我如何重新加载整个页面?请有人能解释一下吗?
我在我的应用程序中使用Delphi Chromium Embedded,我有以下问题:如何模拟F5键来刷新页面?
我使用角度ui-router来管理我的SPA的状态.我有这条路线:
.state('index.administration.security.roleEdit', {
url: '/roleEdit',
templateUrl: 'app/administration/security/role/roleEdit.html',
controller: 'roleEditCtrl',
controllerAs: 'roleEditCtrl',
params: { data: null },
resolve: {
role: function ($stateParams) {
return angular.fromJson($stateParams.data);
},
modules: function (securityService) {
return securityService.getAllModules();
}
}
})
Run Code Online (Sandbox Code Playgroud)
另外,我将'data'参数作为json对象传递给状态.现在当我第一次加载这个状态时,一切都很好.但是当我执行浏览器刷新(F5键)时,$ stateParams.data在状态的resolve函数中为null.
我怎么解决这个问题?我看到了这些可能的解决方案:1.以某种方式坚持参数2.覆盖浏览器刷新(不知道如何)停止浏览器刷新应用程序.3.刷新goto其他兄弟状态.
请帮忙
更新 好的,我设置这样的数据:
vm.editRole = function(roleId){
var role = dataService.getRoleById(roleId).then(function(result){
$state.go('roleEdit', {data:angular.toJson(result)});
});
}
Run Code Online (Sandbox Code Playgroud)
更新2 roleEdit控制器如下所示:
(function(){
angular.module('app.administration').controller('roleEdit',
['role','modules', '$scope', 'securityService', '$state', roleEditCtrl]);
function roleEditCtrl('role', 'modules',$scope, securityService, $state){
var vm = this;
vm.roles = roles;
vm.originalRole = angular.copy(role);
vm.modules=modules;
vm.saveChanges = _saveChanges;
vm.cancel …Run Code Online (Sandbox Code Playgroud) 我使用这个javascript每30秒自动刷新一次页面.
<script type="text/javascript">
window.setTimeout(function(){ document.location.reload(true); }, 30000);
</script>
Run Code Online (Sandbox Code Playgroud)
我需要在重新加载页面之前随时向用户提供禁用此功能的选项.
注意:这适用于管理面板,而不是公共网站,客户端的要求是页面自动刷新,并可选择通过单击按钮在刷新之前停止刷新.
有没有办法实现这一点......那就是..在执行之前禁用javascript?
我有一个具有自刷新内容的页面(通过 WebSocket),如下所示。虽然内容不断变化,但我的 Firefox Webdriver 只能看到初始内容。我可以通过刷新页面来获取最新的
driver.navigate.refresh()
Run Code Online (Sandbox Code Playgroud)
但这会导致不必要的流量,除了 Firefox 窗口中已经出现的新内容之外。
我的问题是:我能否获得在 Firefox 窗口中观察到的新鲜 html,而无需重新加载整个页面?
我通过file://协议在默认浏览器中查看本地HTML文件。
我想在HTML文件中添加一些代码/脚本,以便在文件更改时(最好是在更改CSS文件时)浏览器刷新页面。
我试图通过包括Live.js
<script type="text/javascript" src="http://livejs.com/live.js"></script>
Run Code Online (Sandbox Code Playgroud)
但对于通过访问的文件似乎没有任何作用file://。-有什么可行的解决方案吗?
PS 1:我发现了另一个与此问题有关的问题,但是它不能解决本地文件的问题。
PS 2:我知道我可以通过定期重新加载页面
<meta http-equiv="refresh" content="1">
Run Code Online (Sandbox Code Playgroud)
但这不是我所需要的;我需要重新加载更改。
基本上,我访问了一个特定的网站,我在计时器上设置了用户脚本自动刷新。该特定页面在刷新时不时更改内容。我希望在页面刷新和发生任何页面更改时播放声音。
这是我目前收集的代码,但我仍然需要做一些事情才能使其正常运行:
// ==UserScript==
// @name Auto-Refresh
// @include https://www.prolific.ac/studies
// ==/UserScript==
//--- /sf/ask/1783948491/
setTimeout(function(){ location.reload(); }, 20*1000);
var player = document.createElement('audio');
player.src = 'https://notificationsounds.com/soundfiles/a86c450b76fb8c371afead6410d55534/file-sounds-1108-slow-spring-board.mp3';
player.preload = 'auto';
// Play a sound with condition and then player.play()
Run Code Online (Sandbox Code Playgroud)
所以基本上脚本的其余部分将是“如果发生页面更改(刷新后),则播放声音。” 这是我遇到麻烦的地方。
我一直在使用此线程作为指导:如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?但我不太确定哪种方法最有效。任何和所有建议将不胜感激。提前致谢。
javascript google-chrome userscripts page-refresh tampermonkey
每次我对网站进行更改并尝试将这些更改更新到正在运行的网站时,都必须刷新浏览器。有什么办法可以通过代码来做到这一点
我已经尝试搜索它,但是大多数都说它无法完成。参考文章:如何以编程方式清空浏览器缓存?
**响应标题:
HTTP / 1.1 200 OK
伺服器:nginx / 1.12.2
日期:2018年7月6日星期五10:01:23 GMT
内容类型:text / html
传输编码:分块
连接:保持活动状态
有所不同:接受编码
内容编码:gzip
**请求标头:
GET / HTTP / 1.1
主持人:--example--.com
连接:保持活动状态
不安全升级请求:1
用户代理:Mozilla / 5.0(Macintosh; Intel Mac OS X 10_13_4)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 67.0.3396.99 Safari / 537.36
接受:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp,image / apng,/ ; q = 0.8
接受编码:gzip,放气
接受语言:en-GB,en-US; q = 0.9,en; q = 0.8,hi; q = 0.7
Cookie:fingerPrint = e4a9037b8f674722f414b0b59d8d663c
我使用 Vue.js 和 vue-i18n 来切换项目中的语言,而无需刷新。但是,当我想在阿拉伯语和其他语言之间切换时,我需要将网站的设计从(从右到左)更改为(从左到右),反之亦然。
目前,我需要刷新才能加载我的 rtl.scss 文件:
这是刷新时加载 css 的代码:
let locale = VueCookie.get('locale') || 'en'
if (locale === 'ar') {
require('rtl.scss')
}
Run Code Online (Sandbox Code Playgroud)
这是使页面刷新的代码:
if (newLocale === 'ar' || oldLocale === 'ar') {
window.location.reload()
}
Run Code Online (Sandbox Code Playgroud) page-refresh ×10
javascript ×6
jquery ×2
ajax ×1
angularjs ×1
asynchronous ×1
delphi ×1
html ×1
local-files ×1
php ×1
python ×1
reactjs ×1
selenium ×1
settimeout ×1
tampermonkey ×1
userscripts ×1
vue-i18n ×1
vue.js ×1
webpack ×1