SSR和GraphQL:如果不存在JavaScript,如何避免加载状态(SEO用途?)>

问题描述 投票:0回答:1

今天我第一次尝试使用SSR(服务器端呈现)。

我只需要将其用于SEO用途:因此,没有Java的浏览器(阅读器)以及标准的浏览器。

在我的Svelte / Sapper应用中,我使用GraphQL(Apollo,URQL或SVQL)。

问题

无论我选择哪种GraphQL客户端,我都无法理解如何管理对GraphQL端点的调用的加载。

我的意思是,由于我们不在一个每次用户(或机器人:搜索引擎)浏览DOM时都可以使用对事件的反应性来重写DOM的一部分(我在nodejs服务器中呈现)的环境中。网站(没有javascript)只会看到GraphQL调用的等待状态:“正在加载待办事项...”。

我残酷地错了吗?

代码示例
<script>
  import { initClient, query } from '@urql/svelte';

  initClient({ url: "https://0ufyz.sse.codesandbox.io" });

  const todos = query({
    query: `
      query {
        todos {
          id
          text
          complete
        }
      }
    `
  });
</script>

{#if $todos.fetching} <!-- This is the only state I see in my server rendered response -->
  Loading todos...
{:else}
  <ul>
    {#each $todos.data.todos as todo}
      <li>{todo.text}</li>
    {/each}
  </ul>
{/if}

即使我设法在快递服务器中等待GraphQL响应并呈现数据而不是加载消息,问题是时间要长得多(如果GraphQL端点很慢)并且用户体验令人沮丧,特别是对于使用浏览器和javascript的标准用户。

也许我在推理中缺少某些内容。

但是什么?

今天我第一次尝试使用SSR(服务器端渲染)。我仅需要将其用于SEO用途:因此,没有Java的浏览器(阅读器)以及标准的浏览器。在我的Svelte / Sapper应用程序中,我是...

graphql loading server-side-rendering user-experience svelte
1个回答
0
投票

预加载

© www.soinside.com 2019 - 2024. All rights reserved.