首页 PHP 库 其它类库 分页处理的PHP类
分页处理的PHP类
<?php
namespace JasonGrimes;
class Paginator
{
    const NUM_PLACEHOLDER = '(:num)';
    protected $totalItems;
    protected $numPages;
    protected $itemsPerPage;
    protected $currentPage;
    protected $urlPattern;
    protected $maxPagesToShow = 10;
    protected $previousText = 'Previous';
    protected $nextText = 'Next';
    /**
     * @param int $totalItems The total number of items.
     * @param int $itemsPerPage The number of items per page.
     * @param int $currentPage The current page number.
     * @param string $urlPattern A URL for each page, with (:num) as a placeholder for the page number. Ex. '/foo/page/(:num)'
     */
    public function __construct($totalItems, $itemsPerPage, $currentPage, $urlPattern = '')
    {
        $this->totalItems = $totalItems;
        $this->itemsPerPage = $itemsPerPage;
        $this->currentPage = $currentPage;
        $this->urlPattern = $urlPattern;
        $this->updateNumPages();
    }

分页 (pagination),即将一个页面分成两个或两个以上的页面。

有一种自动分页机制,可以将移动 Web窗体中的内

容分割成一组组较小的页进行呈现,以适合于特定的设备。该机制还呈现可用于浏览到其他页的用户界面元素。无论你的NT服务器的内存有多大,它总是显得不够充足。当物理RAM从低端开始运行时,Windows NT使用了分页文件Pagefile.sys。为了运行不同的进程和应用程序,Pagefile.sys给物理内存分配了一些空间。在这些空间内允许交换数据页。 显然,系统在文件系统缓存中查找数据而不是在驱动器上搜索数据会提高系统的性能。太多的搜索操作会使处理器停顿下来。这就是短语“买更多的内存”成为计算机时代的陈词滥调的原因之一:RAM是你的朋友。管理内存可使你的“朋友”更高效。

Windows NT下的Windows Task Manager ([Ctrl][Alt][Delete] | Task Manager)是一个可以为访问内存使用情况提供快捷重要信息的察看工具。考虑物理内存的大小并计算MEM Usage计数器的值,Memory Usage History提供了内存活动的即时情况。把CPU Usage计数器和CPU Usage History与MEM Usage计数器一作比较,就可以简单地得到性能的总的评价。如果你必须决定是否要立刻启动 Diskperf以进一步调查分页过多问题那就非常便利了。 Windows NT的分页文件可以通过Control Panel |System | Performance 标签| Virtual Memory进行管理。在这里,你可以控制分页文件的几个设置(包括大小和区域)。显然,你可以允许系统对它进行处理,但是为了获得最佳配置还是使用Vitual Memory Manager (VMM)为好。

Windows NT分页文件的基本原则 Windows NT最初通过在物理RAM的数量上加上12MB以设定开始的分页文件大小。这12MB考虑到在系统故障时分页文件内容可被倾倒到一个日志中以防万一。如果看见了“停止”框和接着出现蓝屏死机,你就在操作中遇上了这个问题。如果开始的分页文件的大小小于这个数(物理RAM的数量上加上12MB),就会开始收到Running Out Of Memory消息。 Windows NT操作系统和其应用程序使用了大约10MB的RAM。所以,应该从物理RAM的数量上减去这个值。这会给你充分的回旋余地决定你的服务器的内存要求。 Windows NT要求分页文件的最小值为2MB。如果分页文件太小或者根本不存在,启动时就会出现警告消息。

应该总是遵循RAM的最小值 12的规则。在任何情况下,分页文件都不能比服务器中的RAM的大小小。如果系统有32 MB的物理RAM,加上12MB后分页文件总的大小就是44MB。显然,分页文件越大越好。意思是增加对物理RAM的投资,而不是简单地增加分页文件的大小。如果没有足够的RAM,驱动器就会花太多的时间对分页文件进行读写。这只会降低服务器的速度,如果不得不重启服务器来清除I/O请求,甚至会导致服务器不能工作。而如果因为这个原因需要重启机器,那么可能就会有第二次。 默认的12MB RAM足以在必要时把分页文件的内容清除。小的分页文件限制了可以存储的内容并且可能耗完为应用程序保留的虚拟内存。如果RAM不足,就会有更多的分页,这反过来为驱动器增加了额外的负担,从而降低了系统的响应速度。在这样的情况下,Windows NT要求分页文件的最小值等于除了系统启动时1MB虚拟内存之外的物理RAM的大小,以便能够把调试信息写到一个文件上。 如前所述,分页文件的最大值和最小值在Virtual Memory对话框中指定。根据应用程序,分页文件会增大和缩小。当系统运行着时,不能压缩或维护分页文件。但是,使用各种第三方软件包如Diskeeper可对分页文件进行维护。


免责声明

本站所有资源均由网友贡献或各大下载网站转载。请自行检查软件的完整性!本站所有资源仅供学习参考。请不要将它们用于商业目的。否则,一切后果由您负责!如有侵权,请联系我们删除。联系方式:admin@php.cn

相关文章

PHP 的 `::class` 如何简化类名处理? PHP 的 `::class` 如何简化类名处理?

26 Nov 2024

在 PHP 的 ::class 表示法中使用 ::class 确定类名是一种有用的机制,它返回类的完全限定名称,包括...

PHP 是否提供 BigInteger 类来处理大整数? PHP 是否提供 BigInteger 类来处理大整数?

21 Oct 2024

PHP 中的 BigInteger 类 PHP 是否包含用于处理大整数的 BigInteger 类?如果是这样,如何访问和使用它? 答:虽然 PHP 本身不包含 BigInteger 类,但外部库可以提供此功能。两个记事本

如何使用 PHP 中的 BigInteger 类处理大整数? 如何使用 PHP 中的 BigInteger 类处理大整数?

21 Oct 2024

在 PHP 中使用 BigInteger 类 PHP 提供了多种处理大整数值的方法。 BigInteger 类就是这样的选项之一。访问 BigInteger 类 BigInteger 类在 PHP 中本身并不可用。但是,您可以使用外部库

如何处理 Python 类型提示中的循环依赖? 如何处理 Python 类型提示中的循环依赖?

21 Oct 2024

本文讨论 Python 类型提示中的循环依赖问题,特别是当类在其类型注释中引用不存在的类时发生的 NameError 异常。它使用前向引用和

如何正确处理 Python 中封闭类的类型提示? 如何正确处理 Python 中封闭类的类型提示?

18 Dec 2024

在 Python 中处理封闭类的类型提示了解问题定义引用封闭类作为其返回的方法时...

PHP亚马逊API开发:如何处理商品分类和标签 PHP亚马逊API开发:如何处理商品分类和标签

08 Jul 2023

PHP亚马逊API开发:如何处理商品分类和标签引言:亚马逊是世界上最大的电子商务平台之一,它的API(ApplicationProgrammingInterface)允许开发人员通过编程方式与其平台进行交互。在开发基于亚马逊API的应用程序时,处理商品分类和标签是非常重要的一步。本文将介绍如何使用PHP语言处理亚马逊商品分类和标签,并附上相关的代码示例。

See all articles