Странное поведение тега HTML-ссылки - PullRequest
3 голосов
/ 09 октября 2010

При использовании тега html мы столкнулись со странным поведением. На самом деле проблема была из-за неправильного использования тега. В результате этого страница отправлялась 3 раза в Mozilla Firefox и 2 раза в IE7. Вот проблема.

<link rel="stylesheet" type="text/css" title="Style" href=''/css/image.css'>

Это был код, который мы использовали в одном из наших приложений J2EE. Когда мы проверили запрос и ответ (используя HTTP Watch), мы обнаружили, что страница запрашивалась 3 раза с сервера. Мы обнаружили, что дополнительная « цитата » после href= вызывает проблему. Нам не удалось выяснить причину, по которой это приводило к нескольким страницам. Это потому, что дополнительная кавычка делает пустым href и из-за этого браузер пытается загрузить styleclass с того же URL, который загрузил страницу? Может кто-нибудь, пожалуйста, помогите узнать причину, почему это происходит? Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 09 октября 2010

это объяснение пришло от этой статьи на сайте разработчика Yahoo . Раздел Избегайте пустых изображений src :

When an empty string is encountered as a URI, it is considered a relative URI and is resolved according to the algorithm defined in section 5.2. This specific example, an empty string, is listed in section 5.4.

Хотя до сих пор не ясно, влияет ли это поведение на href или нет (статья в основном касалась пустых src). Но выглядит так:

Hopefully, browsers will not have this problem in the future. Unfortunately, there is no such clause for <script src=""> and <link href="">. Maybe there is still time to make that adjustment to ensure browsers don't accidentally implement this behavior.

примечание: Я никогда не сталкивался с таким поведением, так что это просто теоретический ответ:)

0 голосов
/ 11 октября 2010
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>        
    </head>
    <body>
        <table width="100%" cellspacing="0" cellpadding="0" border="0" class="mainOutterTable">
            <tbody>
                <tr>
                    <td>
                        <table class="layoutColumn" cellpadding="0" cellspacing="0">
                            <tr>
                                <td style="width:100%;" valign="top">
                                    <table class="layoutRow" cellpadding="0" cellspacing="0">
                                        <tr>
                                            <td valign="top" width="910">
                                                <table class="layoutColumn" cellpadding="0" cellspacing="0">
                                                    <tr>
                                                        <td style="width:100%;" valign="top">
                                                            <table class="layoutRow" cellpadding="0" cellspacing="0">
                                                                <tr>
                                                                    <td valign="top" width="294">
                                                                        <table class="layoutColumn" cellpadding="0" cellspacing="0">
                                                                            <tr>
                                                                                <td style="width:100%;" valign="top">
                                                                                    <a name="7_N1K8HIC0GOO780I2B1KASD3047"></a>
                                                                                    <div class="wpsPortletBody">
                                                                                        This is a sample textf 3.
                                                                                        <link rel="stylesheet" type="text/css" title="Style" href=''/>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                        </table>
                                                                    </td>
                                                                </tr>
                                                            </table>
                                                        </td>
                                                    </tr>
                                                </table>
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

Мне удалось воспроизвести проблему на тестовой странице. alt text

Это упомянуто в разделе 5.2 http://www.apps.ietf.org/rfc/rfc3986.html#sec-5.2 Если относительный путь пуст, то цельURI - это базовый путь.if (R.path == ""), тогда T.path = Base.path;

...