首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php/jquery缓冲区已满?页面未完全加载

php/jquery缓冲区已满?页面未完全加载
EN

Stack Overflow用户
提问于 2012-06-18 21:10:55
回答 2查看 655关注 0票数 1

我有一个页面,我目前正在编写,是托管在单板计算机上。我正在编码的当前网页用于设置板子的时区和当前时间设置。它提供了jquery项、javascript函数、一个带有3个提交按钮的表单、php脚本和一些正在运行的linux命令行exec调用,以通过命令行更改电路板的时区。在确定默认下拉项选择应该是什么时,我还做了大量的字符串比较。

我遇到的问题是非常可重复的。如果我提交时区,然后更改时间,再次设置时区,再次更改时间,并可能再次重复此操作,页面将无法完全加载。通过查看源代码,可以清楚地看到整个页面并没有完全加载。通常,它会在下拉选择创建过程中的某处失败。

例如,当它失败时,这是在加载的源代码文件的最底部:

代码语言:javascript
复制
<input class="button" type="submit" name="getLocalTime" value="Copy Local Time"><br><br><br><table><tr><td colspan="2"><tr><td>

<select name="DropDownTimezone" id="DropDownTimezone">
<option  value="Etc/GMT+12">(GMT -12:00) Eniwetok, Kwajalein</option>
<option  value="Etc/GMT+11">(GMT -11:00) Midway Island, Samoa</option>
<option  value="Etc/GMT+10">(GMT -10:00) Hawaii</option>
<option  value="Etc/GMT+9">(GMT -9:00) Alaska</option>
<option  value="Etc/GMT+8">(GMT -8:00) Pacific Time (US &amp; Canada)</option>
<option  value="Etc/GMT+7">(GMT -7:00)

该部分的代码如下:

代码语言:javascript
复制
<select name="DropDownTimezone" id="DropDownTimezone">
<option <?php if ($hwOffset == "-12") echo 'selected'; ?> value="Etc/GMT+12">(GMT -12:00) Eniwetok, Kwajalein</option>
<option <?php if ($hwOffset == "-11") echo 'selected'; ?> value="Etc/GMT+11">(GMT -11:00) Midway Island, Samoa</option>
<option <?php if ($hwOffset == "-10") echo 'selected'; ?> value="Etc/GMT+10">(GMT -10:00) Hawaii</option>
<option <?php if ($hwOffset == "-9") echo 'selected'; ?> value="Etc/GMT+9">(GMT -9:00) Alaska</option>
<option <?php if ($hwOffset == "-8") echo 'selected'; ?> value="Etc/GMT+8">(GMT -8:00) Pacific Time (US &amp; Canada)</option>
<option <?php if ($hwOffset == "-7") echo 'selected'; ?> value="Etc/GMT+7">(GMT -7:00) Mountain Time (US &amp; Canada)</option>
<option <?php if ($hwOffset == "-6") echo 'selected'; ?> value="Etc/GMT+6">(GMT -6:00) Central Time (US &amp; Canada), Mexico City</option>
<option <?php if ($hwOffset == "-5") echo 'selected'; ?> value="Etc/GMT+5">(GMT -5:00) Eastern Time (US &amp; Canada), Bogota, Lima</option>
<option <?php if ($hwOffset == "-4") echo 'selected'; ?> value="Etc/GMT+4">(GMT -4:00) Atlantic Time (Canada), Caracas, La Paz</option>
<option <?php if ($hwOffset == "-3") echo 'selected'; ?> value="Etc/GMT+3">(GMT -3:00) Brazil, Buenos Aires, Georgetown</option>
<option <?php if ($hwOffset == "-2") echo 'selected'; ?> value="Etc/GMT+2">(GMT -2:00) Mid-Atlantic</option>
<option <?php if ($hwOffset == "-1") echo 'selected'; ?> value="Etc/GMT+1">(GMT -1:00) Azores, Cape Verde Islands</option>
<option <?php if ($hwOffset == "+0") echo 'selected'; ?> value="Etc/GMT+0">(GMT) Western Europe Time, London, Lisbon, Casablanca</option>
<option <?php if ($hwOffset == "+1") echo 'selected'; ?> value="Etc/GMT-1">(GMT +1:00) Brussels, Copenhagen, Madrid, Paris</option>
<option <?php if ($hwOffset == "+2") echo 'selected'; ?> value="Etc/GMT-2">(GMT +2:00) Kaliningrad, South Africa</option>
<option <?php if ($hwOffset == "+3") echo 'selected'; ?> value="Etc/GMT-3">(GMT +3:00) Baghdad, Riyadh, Moscow, St Petersburg</option>
<option <?php if ($hwOffset == "+4") echo 'selected'; ?> value="Etc/GMT-4">(GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi</option>
<option <?php if ($hwOffset == "+5") echo 'selected'; ?> value="Etc/GMT-5">(GMT +5:00) Ekaterinburg, Islamabad, Karachi, Tashkent</option>
<option <?php if ($hwOffset == "+6") echo 'selected'; ?> value="Etc/GMT-6">(GMT +6:00) Almaty, Dhaka, Colombo</option>
<option <?php if ($hwOffset == "+7") echo 'selected'; ?> value="Etc/GMT-7">(GMT +7:00) Bangkok, Hanoi, Jakarta</option>
<option <?php if ($hwOffset == "+8") echo 'selected'; ?> value="Etc/GMT-8">(GMT +8:00) Beijing, Perth, Singapore, Hong Kong</option>
<option <?php if ($hwOffset == "+9") echo 'selected'; ?> value="Etc/GMT-9">(GMT +9:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk</option>
<option <?php if ($hwOffset == "+10") echo 'selected'; ?> value="Etc/GMT-10">(GMT +10:00) Eastern Australia, Guam, Vladivostok</option>
<option <?php if ($hwOffset == "+11") echo 'selected'; ?> value="Etc/GMT-11">(GMT +11:00) Magadan, Solomon Islands, New Caledonia</option>
<option <?php if ($hwOffset == "+12") echo 'selected'; ?> value="Etc/GMT-12">(GMT +12:00) Auckland, Wellington, Fiji, Kamchatka</option>
</select>

我认为这与内存耗尽或缓冲区填满有关,因为它不会每次都失败,但在大致相同数量的重复步骤后会失败。PHP中有没有什么有用的命令或方法来避免这个问题?或者,有没有其他可能的根源导致这样的问题?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-18 22:16:25

不幸的是,令人尴尬的是,这个问题与我的表单代码有关,与时区下拉列表几乎没有关系,只是每次都会在那里失败。感谢大家在这个问题上的意见,因为它确实给我指明了正确的方向(让我觉得自己很愚蠢)。一旦我开始跟踪可能损坏的变量,我注意到我的表单action=项指向一个变量来获取文件名。在监视了一段时间的错误日志后,我很快意识到文件名还没有设置。一旦我清理了这条线,它似乎很奇怪地解决了我的其他问题。

之前:echo "<form method='POST' action='".$PHP_SELF."' onsubmit='getTime();'>";

之后:echo "<form method='POST' action='?page=home' onsubmit='getTime();'>";

这似乎已经修复了它。我有点困惑,为什么它仍然提交,为什么它会以它的方式失败,但这一行似乎已经修复了发生的任何部分加载的页面。

票数 0
EN

Stack Overflow用户

发布于 2012-06-18 21:44:45

这不是为什么会发生这种情况的答案(因为您的代码看起来很好,尽管很难看,而且正如其他人所提到的,尝试使用error_reporting(E_ALL))。这是您使用jQuery接收的内容,还是加载站点时的超文本标记语言输出?

作为一个附加功能,这里有一个数组版本的代码,您应该能够轻松地合并您的翻译。

代码语言:javascript
复制
<?php
    $timezones = array(
        'Eniwetok, Kwajalein',
        'Midway Island, Samoa',
        'Hawaii',
        'Alaska',
        'Pacific Time (US &amp; Canada)',
        'Mountain Time (US &amp; Canada)',
        'Central Time (US &amp; Canada), Mexico City',
        'Eastern Time (US &amp; Canada), Bogota, Lima',
        'Atlantic Time (Canada), Caracas, La Paz',
        'Brazil, Buenos Aires, Georgetown',
        'Mid-Atlantic',
        'Azores, Cape Verde Islands',
        'Western Europe Time, London, Lisbon, Casablanca',
        'Brussels, Copenhagen, Madrid, Paris',
        'Kaliningrad, South Africa',
        'Baghdad, Riyadh, Moscow, St Petersburg',
        'Abu Dhabi, Muscat, Baku, Tbilisi',
        'Ekaterinburg, Islamabad, Karachi, Tashkent',
        'Almaty, Dhaka, Colombo',
        'Bangkok, HanoiBeijing, Perth, Singapore, Hong Kong, Jakarta',
        'Beijing, Perth, Singapore, Hong Kong',
        'Tokyo, Seoul, Osaka, Sapporo, Yakutsk',
        'Eastern Australia, Guam, Vladivostok',
        'Magadan, Solomon Islands, New Caledonia',
        'Auckland, Wellington, Fiji, Kamchatka'
    );
    echo '<select name="DropDownTimezone" id="DropDownTimezone">';
    for ($i = 0; $i < sizeof($timezones); $i++) {
        $timezone = ($i - 12);
        $timezoneReverse = ($timezone * -1);
        $timezoneValue = ($timezone >= 0 ? '+' . $timezone : $timezone);
        $timezoneReverseValue = ($timezoneReverse >= 0 ? '+' . $timezoneReverse : $timezoneReverse);
        echo '<option' . ($hwOffset == $timezoneValue ? ' selected' : '') . ' value="Etc/GMT' . $timezoneReverseValue . '">(GMT' . ($timezone != 0 ? ' ' . $timezoneValue . ':00' : '') . ') ' . $timezones[$i] . '</option>';
    }
    echo '</select>';
?>

请注意,这可能不会真正解决您的问题,所以请不要接受它作为解决方案,因为它只是一个编辑您的HTML,但这是一个太大的变化,我想要编辑您的操作

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11083633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档