- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
现在我的问题很简单,在堆栈溢出站点上没有看到任何烟灰。我如何使用 Ajax 打开动态 PHP 页面,如果 Ajax 失败也无法正常打开页面,就像 google 一样。如果他们的搜索失败,让我们假设他们使用 Ajax,他们会自动运行页面,我该如何通过 Href 链接做到这一点没有页面刷新,如果无法正常加载,请帮助我陷入困境。不是重复的,没有看到任何答案,请帮助我被困住了..
example
<a href="onelink.php" >Open me</a>
//current page onelink.php
最佳答案
我会给你一个简短的答案,因为我已经在这个网站上看到了这类问题的一些非常好的答案,如果你继续在你列出的标签中搜索,特别是 jquery ajax 那么我确信你得到你需要的东西。 jquery.ajax() 页面位于 http://api.jquery.com/jquery.ajax/可能是一个很好的起点。如果你想真正理解这一点,你就必须做一些研究。也就是说,这是我的一些旧代码。
这是从客户端发送到服务器上的 php 文件的一些信息的 ajax 请求。只要页面能够响应所请求的 URL,页面是动态生成的还是真实的并不重要。
function logrequest()
{
$.ajax({
url: siteURL + '/custom/log/requestlog.php',
type: 'GET',
data: $.param({ip: customer_ip}),
dataType: 'json',
success: function(data){
if(data.count!=null)
{
requests=data.count;
}
}
});
}
以下是来自 php 文件名 requeSTLog.php 的响应。
<?php
$ip=$_GET['ip'];
$ip_passS=file_get_contents('http://www...passthru.txt');
$ip_passA=split(',',$ip_passS);
$ip_cnt=0;
$d=gmdate("ymd");
$RQLog=$_SERVER['DOCUMENT_ROOT'].'/custom/log/requests/RQLog'.$d.'.txt';
$fp=fopen($RQLog,"a");
$s=gmdate("H:i:s").", ".$ip."\r\n";
fwrite($fp,$s);
fclose($fp);
$ip_requests=file_get_contents('http://www.../custom/log/requests/RQLog'.$d.'.txt');
$ip_cnt=substr_count($ip_requests,$ip);
header('Content-Type: text/json');
if(!in_array($ip,$ip_passA))
{
$response = array('count'=>$ip_cnt);
echo json_encode($response);
}
else //if your in the passthru, you get a free lunch
{
$response = array('count'=>0);
echo json_encode($response);
}
?>
因此,ajax 从 PHP 文件请求数据,服务器上的文件通过将数据以 json 格式回显来进行响应。在某些情况下,根据请求的去向,您可能永远不会收到响应。就像您处理的网站可以将地址转换为 GPS 坐标一样。如果他们很忙并且您的优先级较低,您可能永远不会得到回复,但您的代码可以愉快地进行。如果您继续生成太多此类请求,那么您可能会遇到一些浏览器和服务器施加的限制,因此您需要了解自己在做什么。
但这就是简短的答案。
这样做的值(value)在于,这种事情可能会满足您网站上屏幕的一小部分,如果它没有立即响应,您可以继续加载页面,数据将被返回时提供。
这段代码的细节并不重要。问题是“如何使用 ajax 打开 php 页面(动态或其他)。答案是将正确的 url 传递给 ajax 请求,页面通过回显它返回其数据。这可能是单击按钮或DOM 加载后的文档就绪事件。可能有很多事情。您必须决定您想要它是什么。顺便说一句,调试此类代码可能非常困难,因此请耐心等待。
因此,我没有回答的问题的一部分是,如果服务器上的页面打不开或从未发送响应,该怎么办。因此,一个问题可能是页面确实打开并运行,但没有发回您期望的响应,或者响应期间可能存在 Uncaught Error 。我发现这些情况通常很难排除故障,因此有时我会设置响应日志并记录对成功和失败例程的所有响应(如果它们都存在)。这样我就有希望确定如何改进代码。您还可以将错误对象传递给您的 javascript 例程,并且根据您收到的错误类型(假设您记录了错误),您可能能够深入了解该问题。但简短的答案是修复您的代码或找出发出另一个请求的方法。如果您同时编写客户端和服务器端,您可以多次使用 try/catch 来查看是否可以捕获问题。如果您不是编写服务器端,那么请尽可能多地阅读其 API 或接口(interface),并注意返回的错误。
所以大多数时候我发现其他人的公共(public)访问界面确实跟我顶嘴,但我必须知道如何倾听。当我编写服务器端代码时,我几乎总是尝试使其保持简单,因为我通常不期望在这些情况下获得太多流量,如果我期望大量流量,我通常会选择商用解决方案(即真正知道自己在做什么的人)。
关于javascript - 使用带有 href 的 ajax 打开动态 php 页面,无需刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42238320/
我们知道,当使用 hibernate 对数据库进行批量更新时(即使在 HQL 中),所做的更改不会复制到存储在当前 session 中的实体。 所以我可以调用 session.refresh 来加载对
我正在做一个项目,所有的东西都保存在事件中,所以服务器需要一些时间来响应新数据。我正在使用 Fluent 等待使用 ajax 的页面,但是这个不使用任何 ajax。所以我想刷新页面检查是否有新项目,如
我有一个从 Vector 创建的 JTable。 如何刷新 JTable 以显示添加到 Vector 的新数据? 最佳答案 当 TableModel 发生更改时,您的 JTable 应该会自动更新。我
有没有办法使用下面的代码来刷新已经存在的 div id,而不是刷新时间? window.onload = startInterval; function startInterval() {
我更新了在 Shiny Server 上运行的 Shiny 应用程序使用的 DataSet.RData。但是, Shiny 的应用程序仍在旧数据上运行。我已通过浏览器历史记录清除并重新启动浏览器几次,
我的应用程序中有一个无限滚动的网格面板(ExtJs 4.2.1),类似于 this example .用户可以单击刷新按钮,然后必须使用数据库中的数据更新网格的行。我在刷新按钮处理程序中调用 stor
我不知道这三种方法中哪一种最适合我。他们都为我工作。有谁知道刷新、更新和重画之间的区别吗? 最佳答案 根据在线文档: Refresh - 重新绘制屏幕上的控件。 Call Refresh method
有什么办法吗 ICollectionView.Refresh() 或者 CollectionViewSource.GetDefaultView(args.NewValue).Refresh(); 在
这个问题已经有答案了: Updating address bar with new URL without hash or reloading the page [duplicate] (4 个回答)
我有一个 javascript 设置超时以在 10 秒后关闭 div,并且我想在 div 关闭时添加页面刷新。我正在使用的代码如下。 var container_close_sec = "1
我有一组具有以下名称的页面.... update1.php update2.php update3.php update4.php update5.php update6.php update7.ph
如果是则触发js函数。我可以使一个复选框保持选中状态,并在页面刷新时检查值并选中“checked”,并提交以下内容... checked="checked" /> 你都不记得触发js函数。 这是我的
我正在尝试刷新 php 脚本以在数据库更新时显示更新的内容。我首先构建了我的 php,然后刷新代码,然后合并它们。但是,脚本不会更新。有谁知道为什么吗? $(document).ready
当我要删除的节点扩展集合类型时,Grails中有一个错误阻止我使用removeFrom *。直接从关联中删除节点不会更新二级缓存。 A hasMany B 有什么方法可以使关联缓存手动无效或强制重新加
我正在使用 hibernate 和 mysql 来抽象一个数据库,以便在 java 驱动的网站中使用。我使用 hibernate 很好地解决了所有查询,但似乎无法弄清楚如何使用它进行更新、插入和删除,
如何通过调用 oncreateview 方法重新创建 fragment ?我有一个 fragment ,用于通过表单插入新数据,单击按钮后,我想通过删除在 EditText 中输入的数据来重新创建 f
当我从一个到另一个时,我试图刷新我的观点。我知道我应该将刷新代码放在 viewWillAppear 中,但我不知道该放什么代码。 你们能帮帮我吗? 谢谢! 最佳答案 在您看来,请调用 setNeeds
我正在开发 iPhone 应用程序并希望使用: CFStreamCreatePairWithSocketToHost(NULL, url, port, &serverReadStream, &serv
看到我已经创建了一个用于登录用户的脚本。而且我还添加了设置选项卡,以便用户可以编辑他们的设置!但是当我尝试它时,mysql 表中的数据发生了变化,但配置文件中显示的用户名和用户电子邮件保持不变!当我注
好的。这就是它的样子。 当我启动应用程序时,我从服务器收到的第一件事是数据: {name: "test", type: "checkbox" checked: true, } 这使得其中一个复选框
我是一名优秀的程序员,十分优秀!