gpt4 book ai didi

javascript - 使用带有 href 的 ajax 打开动态 php 页面,无需刷新页面

转载 作者:行者123 更新时间:2023-12-03 05:00:43 25 4
gpt4 key购买 nike

现在我的问题很简单,在堆栈溢出站点上没有看到任何烟灰。我如何使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com