Php 为移动(web开发)网站/使用显示大型PDF的最佳方式
我需要显示一个超过100页的PDF(是的,它是巨大的)在一个移动网站。这是行不通的,我需要想出一个替代方案 我使用PHP作为后端,使用jQueryMobile库作为移动框架 我曾考虑将PDF转换为html,但接下来的问题是如何加载每个页面或加载所有页面(就像使用JQM的多页面布局一样) 我想让每个页面都有一个AJAX请求,并以这种方式加载它,但我想对任何替代方法/想法有一个新的看法 我还担心连接速度,因为移动设备不同于Edge、3G、4G、无线等。。。因此,使加载时间尽可能快是必须的 更新: PDF文件大小约为9MB,是的,这不是很多,但对于连接速度较慢的移动浏览器来说,这将需要一些时间来显示,如果不先超时的话Php 为移动(web开发)网站/使用显示大型PDF的最佳方式,php,jquery,html,ajax,pdf,Php,Jquery,Html,Ajax,Pdf,我需要显示一个超过100页的PDF(是的,它是巨大的)在一个移动网站。这是行不通的,我需要想出一个替代方案 我使用PHP作为后端,使用jQueryMobile库作为移动框架 我曾考虑将PDF转换为html,但接下来的问题是如何加载每个页面或加载所有页面(就像使用JQM的多页面布局一样) 我想让每个页面都有一个AJAX请求,并以这种方式加载它,但我想对任何替代方法/想法有一个新的看法 我还担心连接速度,因为移动设备不同于Edge、3G、4G、无线等。。。因此,使加载时间尽可能快是必须的 更新: P
提前感谢。我会这样做,因为您并不是真的提供PDF(可能需要书签、图形、导航链接和其他复杂内容),只是需要加载大量内容,并确保请求不会太大,以致页面超时 关注事项:
- 大文件大小和超时
- 必须履行全部协议
/agreement.php?page=1
第二步
将内容请求到一个div中,使用递归使其在第一个页面成功加载后加载到下一个页面(而不是在加载之前或之后。异步可能会很混乱)
担心
- 将其保持为简单文本,在同一渲染中的100页图形数据可能会占用大量内存
- 您的ajax请求可能会由于多种原因而失败,我输入的错误重试不会覆盖所有原因,并且可能会永远持续下去,例如php脚本崩溃
- 在协议加载完成之前,用户可能会点击“同意”
- 风格。在我的示例中,我使用了“幻数”,其中100页是一个硬编码的值,而不是一个常量,在实现此功能时不要这样做
- 大文件大小和超时
- 必须履行全部协议
/agreement.php?page=1
第二步
将内容请求到一个div中,使用递归使其在第一个页面成功加载后加载到下一个页面(而不是在加载之前或之后。异步可能会很混乱)
担心
- 将其保持为简单文本,在同一渲染中的100页图形数据可能会占用大量内存
- 您的ajax请求可能会由于多种原因而失败,我输入的错误重试不会覆盖所有原因,并且可能会永远持续下去,例如php脚本崩溃
- 在协议加载完成之前,用户可能会点击“同意”
- 风格。在我的示例中,我使用了“幻数”,其中100页是一个硬编码的值,而不是一个常量,在实现此功能时不要这样做
//Untested code
function loadPages(n) {
$.ajax({
url: './agreement.php',
data: {'page':n},
error : function (){ loadPages(n) }, //Try to load again
success: function (pageData) {
n++;
$('#agreementBox').append(pageData);//Puts data into document
if (n > 100) {return 0;} //Exit recursion on 100th page being appended
loadPages(n); //Recursive call, loads next page after this one has been loaded
}
});
}
loadPages(1); //Call function for the first time.